{"id":"CVE-2025-54313","published":"2025-07-19T17:15:23Z","modified":"2026-06-17T09:39:49Z","title":"Prettier eslint-config-prettier Embedded Malicious Code Vulnerability","vendor":"Prettier","product":"eslint-config-prettier","tier":"core","eol":null,"description":{"text":"eslint-config-prettier 8.10.1, 9.1.1, 10.1.6, and 10.1.7 has embedded malicious code for a supply chain compromise. Installing an affected package executes an install.js file that launches the node-gyp.dll malware on Windows.","provenance":"source","from":"NVD"},"summary":{"text":"The eslint-config-prettier package (from Prettier) contains embedded malicious code in versions 8.10.1, 9.1.1, 10.1.6, and 10.1.7, injected as part of a supply chain compromise. An attacker who gets a user to install an affected version can run a malicious install.js script that launches node-gyp.dll malware on Windows, which requires no prior authentication and no network-positioning beyond the install itself, though the install step is ultimately triggered by the user or their build process.","provenance":"ai","model":"claude-haiku-5-5","generatedAt":"2026-10-23T07:11:32Z"},"cvss":{"score":7.5,"severity":"HIGH","version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N","provenance":"source","from":"NVD"},"epss":{"score":0.05125,"percentile":0.92372,"date":"2026-10-29","provenance":"source"},"kev":{"dateAdded":"2026-01-22","dueDate":"2026-02-12","ransomware":false,"requiredAction":"Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.","notes":"This vulnerability could affect an open-source component, third-party library, protocol, or proprietary implementation that could be used by different products. For more information, please see: https://www.npmjs.com/package/eslint-config-prettier?activeTab=versions ; https://github.com/prettier/eslint-config-prettier/issues/339#issuecomment-3090304490 ; https://nvd.nist.gov/vuln/detail/CVE-2025-54313","provenance":"source"},"vulncheckKev":{"dateAdded":"2025-07-19","exploitedFirstSeen":"2025-07-19","ransomware":false,"evidence":[{"url":"https://www.endorlabs.com/learn/cve-2025-54313-eslint-config-prettier-compromise----high-severity-but-windows-only","date":"2025-07-19"},{"url":"https://safedep.io/eslint-config-prettier-major-npm-supply-chain-hack/","date":"2025-07-21"},{"url":"https://snyk.io/blog/maintainers-of-eslint-prettier-plugin-attacked-via-npm-supply-chain-malware/","date":"2025-07-22"},{"url":"https://www.crowdstrike.com/en-us/blog/crowdstrike-falcon-prevents-npm-package-supply-chain-attacks/","date":"2025-07-23"},{"url":"https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json","date":"2026-01-22"},{"url":"https://www.recordedfuture.com/blog/january-2026-cve-landscape","date":"2026-02-24"}],"evidenceTotal":6,"provenance":"source"},"exploited":true,"otx":{"pulseCount":50,"pulses":[{"name":"Actively_Exploited_Kev | Oct 30, 2026","url":"https://otx.alienvault.com/pulse/6ae35d889ea92b4ce19c2680","created":"2026-10-29"},{"name":"Actively_Exploited_Kev | Oct 29, 2026","url":"https://otx.alienvault.com/pulse/6ae20c1db17e7057ae7d9ad1","created":"2026-10-28"},{"name":"Actively_Exploited_Kev | Oct 28, 2026","url":"https://otx.alienvault.com/pulse/6ae0ba7e0e2a97ff7b218819","created":"2026-10-27"},{"name":"Actively_Exploited_Kev | Oct 27, 2026","url":"https://otx.alienvault.com/pulse/6adf68b85c3e852f3c111d18","created":"2026-10-26"},{"name":"Actively_Exploited_Kev | Oct 24, 2026","url":"https://otx.alienvault.com/pulse/6adb740e397c3ad4799aa4cd","created":"2026-10-23"},{"name":"Actively_Exploited_Kev | Oct 23, 2026","url":"https://otx.alienvault.com/pulse/6ada236fcfba2dfa730ea482","created":"2026-10-22"},{"name":"Actively_Exploited_Kev | Oct 22, 2026","url":"https://otx.alienvault.com/pulse/6ad8d33a077cbb5cab524d80","created":"2026-10-21"},{"name":"Actively_Exploited_Kev | Oct 21, 2026","url":"https://otx.alienvault.com/pulse/6ad78130c4d1ac2be83a8b6d","created":"2026-10-20"},{"name":"Actively_Exploited_Kev | Oct 20, 2026","url":"https://otx.alienvault.com/pulse/6ad62f63c24a405a3423cc13","created":"2026-10-19"},{"name":"Actively_Exploited_Kev | Oct 19, 2026","url":"https://otx.alienvault.com/pulse/6ad4dda174e5797d0bd238b7","created":"2026-10-18"}],"provenance":"machine"},"cwes":[{"id":"CWE-506","name":"Embedded Malicious Code"}],"references":[{"url":"https://github.com/prettier/eslint-config-prettier/issues/339","tags":["Issue Tracking"]},{"url":"https://news.ycombinator.com/item?id=44608811","tags":["Issue Tracking"]},{"url":"https://news.ycombinator.com/item?id=44609732","tags":["Issue Tracking"]},{"url":"https://socket.dev/blog/npm-phishing-campaign-leads-to-prettier-tooling-packages-compromise","tags":["Third Party Advisory"]},{"url":"https://www.bleepingcomputer.com/news/security/popular-npm-linter-packages-hijacked-via-phishing-to-drop-malware/","tags":["Exploit","Third Party Advisory"]},{"url":"https://www.npmjs.com/package/eslint-config-prettier?activeTab=versions","tags":["Product"]},{"url":"https://www.stepsecurity.io/blog/supply-chain-security-alert-eslint-config-prettier-package-shows-signs-of-compromise","tags":["Exploit","Third Party Advisory"]},{"url":"https://github.com/community-scripts/ProxmoxVE/discussions/6115","tags":["Third Party Advisory"]},{"url":"https://www.endorlabs.com/learn/cve-2025-54313-eslint-config-prettier-compromise----high-severity-but-windows-only","tags":["Third Party Advisory"]},{"url":"https://www.bleepingcomputer.com/news/security/popular-npm-linter-packages-hijacked-via-phishing-to-drop-malware/","tags":["Exploit","Third Party Advisory"]},{"url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-54313","tags":["US Government Resource"]}],"techniques":[{"id":"T1195.002","name":"Compromise Software Supply Chain","tactics":["initial-access"],"provenance":"ai","basis":"ai-mapping","bases":["ai-mapping"],"basisDetail":"claude-haiku-5-5: supply chain compromise via trojanized package","mappingType":"exploitation_technique","evidence":[{"from":"description","quote":"has embedded malicious code for a supply chain compromise","start":57,"end":114}],"model":"claude-haiku-5-5","confidence":"medium","confidenceNote":"AI-mapped from the description (quote-validated, not expert-reviewed)"},{"id":"T1059","name":"Command and Scripting Interpreter","tactics":["execution"],"provenance":"ai","basis":"ai-mapping","bases":["ai-mapping"],"basisDetail":"claude-haiku-5-5: install.js script launches malware","mappingType":"primary_impact","evidence":[{"from":"description","quote":"executes an install.js file that launches the node-gyp.dll malware","start":147,"end":213}],"model":"claude-haiku-5-5","confidence":"medium","confidenceNote":"AI-mapped from the description (quote-validated, not expert-reviewed)"},{"id":"T1204.002","name":"Malicious File","tactics":["execution"],"provenance":"ai","basis":"ai-mapping","bases":["ai-mapping"],"basisDetail":"claude-haiku-5-5: user installs package, triggering script execution","mappingType":"primary_impact","evidence":[{"from":"description","quote":"Installing an affected package executes an install.js file","start":116,"end":174}],"model":"claude-haiku-5-5","confidence":"low","confidenceNote":"server-side bug exploitable without user interaction; client-execution technique does not fit"}],"reports":[],"affected":[{"ecosystem":"npm","package":"eslint-config-prettier","vulnerableRanges":[">=8.10.1, <8.10.2",">=9.1.1, <9.1.2",">=10.1.6, <10.1.8"],"patched":["8.10.2","9.1.2","10.1.8"],"from":["GHSA-f29h-pxvx-f335"],"provenance":"source"},{"ecosystem":"npm","package":"eslint-plugin-prettier","vulnerableRanges":[">=4.2.2, <4.2.4"],"patched":["4.2.4"],"from":["GHSA-f29h-pxvx-f335"],"provenance":"source"},{"ecosystem":"npm","package":"synckit","vulnerableRanges":[">=0.11.9, <0.11.10"],"patched":["0.11.10"],"from":["GHSA-f29h-pxvx-f335"],"provenance":"source"},{"ecosystem":"npm","package":"@pkgr/core","vulnerableRanges":[">=0.2.8, <0.2.9"],"patched":["0.2.9"],"from":["GHSA-f29h-pxvx-f335"],"provenance":"source"},{"ecosystem":"npm","package":"napi-postinstall","vulnerableRanges":[">=0.3.1, <0.3.2"],"patched":["0.3.2"],"from":["GHSA-f29h-pxvx-f335"],"provenance":"source"},{"ecosystem":"npm","package":"got-fetch","vulnerableRanges":[">=5.1.11, <6.0.0"],"patched":["6.0.0"],"from":["GHSA-f29h-pxvx-f335"],"provenance":"source"}],"advisories":[{"id":"GHSA-f29h-pxvx-f335","url":"https://github.com/advisories/GHSA-f29h-pxvx-f335","severity":"HIGH","ecosystem":"npm","package":"eslint-config-prettier","vulnerableRanges":[">=8.10.1, <8.10.2"],"patched":["8.10.2"],"provenance":"source","from":"GHSA"},{"id":"GHSA-f29h-pxvx-f335","url":"https://github.com/advisories/GHSA-f29h-pxvx-f335","severity":"HIGH","ecosystem":"npm","package":"eslint-config-prettier","vulnerableRanges":[">=9.1.1, <9.1.2"],"patched":["9.1.2"],"provenance":"source","from":"GHSA"},{"id":"GHSA-f29h-pxvx-f335","url":"https://github.com/advisories/GHSA-f29h-pxvx-f335","severity":"HIGH","ecosystem":"npm","package":"eslint-config-prettier","vulnerableRanges":[">=10.1.6, <10.1.8"],"patched":["10.1.8"],"provenance":"source","from":"GHSA"},{"id":"GHSA-f29h-pxvx-f335","url":"https://github.com/advisories/GHSA-f29h-pxvx-f335","severity":"HIGH","ecosystem":"npm","package":"eslint-plugin-prettier","vulnerableRanges":[">=4.2.2, <4.2.4"],"patched":["4.2.4"],"provenance":"source","from":"GHSA"},{"id":"GHSA-f29h-pxvx-f335","url":"https://github.com/advisories/GHSA-f29h-pxvx-f335","severity":"HIGH","ecosystem":"npm","package":"synckit","vulnerableRanges":[">=0.11.9, <0.11.10"],"patched":["0.11.10"],"provenance":"source","from":"GHSA"},{"id":"GHSA-f29h-pxvx-f335","url":"https://github.com/advisories/GHSA-f29h-pxvx-f335","severity":"HIGH","ecosystem":"npm","package":"@pkgr/core","vulnerableRanges":[">=0.2.8, <0.2.9"],"patched":["0.2.9"],"provenance":"source","from":"GHSA"},{"id":"GHSA-f29h-pxvx-f335","url":"https://github.com/advisories/GHSA-f29h-pxvx-f335","severity":"HIGH","ecosystem":"npm","package":"napi-postinstall","vulnerableRanges":[">=0.3.1, <0.3.2"],"patched":["0.3.2"],"provenance":"source","from":"GHSA"},{"id":"GHSA-f29h-pxvx-f335","url":"https://github.com/advisories/GHSA-f29h-pxvx-f335","severity":"HIGH","ecosystem":"npm","package":"got-fetch","vulnerableRanges":[">=5.1.11, <6.0.0"],"patched":["6.0.0"],"provenance":"source","from":"GHSA"}],"euvd":{"id":"EUVD-2025-21972","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-21972","exploited":true,"exploitedSince":"2026-01-22","provenance":"source"},"exploits":[],"exploitSources":{"pocGithub":{"count":2,"skipped":0,"earliest":"2025-07-26","earliestUrl":"https://github.com/nihilor/cve-2025-54313","repos":[{"name":"nihilor/cve-2025-54313","url":"https://github.com/nihilor/cve-2025-54313","stars":0,"created":"2025-07-26"},{"name":"Paspke/scavenger_scanner","url":"https://github.com/Paspke/scavenger_scanner","stars":0,"created":"2025-07-26"}]},"first":{"date":"2025-07-26","source":"PoC-in-GitHub","url":"https://github.com/nihilor/cve-2025-54313"},"provenance":"source"},"exploitRefs":["https://www.bleepingcomputer.com/news/security/popular-npm-linter-packages-hijacked-via-phishing-to-drop-malware/","https://www.stepsecurity.io/blog/supply-chain-security-alert-eslint-config-prettier-package-shows-signs-of-compromise"],"flow":[{"stage":"exploitation","techniques":["T1195.002"],"provenance":"ai"},{"stage":"primary","techniques":["T1059"],"provenance":"ai"},{"stage":"related","techniques":["T1204.002"],"provenance":"ai","lowConfidence":true}],"timeline":[{"date":"2025-07-19","kind":"published","label":"Published (NVD)","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-54313","provenance":"source"},{"date":"2025-07-19","kind":"exploited-reported","label":"Exploitation first reported (VulnCheck KEV evidence)","url":"https://www.endorlabs.com/learn/cve-2025-54313-eslint-config-prettier-compromise----high-severity-but-windows-only","provenance":"source"},{"date":"2025-07-26","kind":"exploit-public","label":"First public exploit: PoC-in-GitHub","url":"https://github.com/nihilor/cve-2025-54313","provenance":"source"},{"date":"2026-01-22","kind":"kev","label":"Added to CISA KEV","url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog","provenance":"source"},{"date":"2026-01-22","kind":"euvd-exploited","label":"ENISA EUVD: exploited","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-21972","provenance":"source"}],"speed":{"daysToPublicExploit":7,"firstExploitFrom":"PoC-in-GitHub","daysToKev":187},"priority":{"score":66.7,"factors":[{"name":"In a KEV catalog","points":35.0,"detail":"listed in CISA KEV and VulnCheck KEV"},{"name":"Recent KEV listing","points":0.0,"detail":"added 468 days ago"},{"name":"Known ransomware use","points":0.0,"detail":"not known"},{"name":"EPSS percentile","points":18.47,"detail":"percentile 0.9237"},{"name":"Named in threat reports","points":0.0,"detail":"0 reports"},{"name":"Public exploit code","points":5.0,"detail":"2 NVD references tagged Exploit; 2 PoC-in-GitHub repos"},{"name":"Mentioned in OTX pulses","points":3.0,"detail":"50 pulses"},{"name":"CVSS severity","points":5.25,"detail":"base score 7.5"},{"name":"End-of-life product","points":0.0,"detail":"supported or unknown"}]}}