{"id":"CVE-2025-54313","aliases":["EUVD-2025-21972","GHSA-f29h-pxvx-f335"],"status":"published","title":"eslint-config-prettier, eslint-plugin-prettier, synckit, @pkgr/core, napi-postinstall have embedded malicious code","description":"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.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.05125,"percentile":0.92506,"model":"v2026.06.15"},"facts":{"in_kev":true,"known_exploited":true,"public_exploit":true,"fix_available":true},"cwes":["CWE-506"],"published":"2025-07-19T00:00:00Z","modified":"2026-10-28T02:31:03Z","kev":{"date_added":"2026-01-22","due_date":"2026-02-12","required_action":"Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.","known_ransomware_use":"Unknown"},"exploitation":[{"source":"euvd","since":"2026-01-22"},{"source":"kev","since":"2026-01-22"}],"exploits":[{"source":"pocgithub","id":"Paspke/scavenger_scanner","title":"Paspke/scavenger_scanner","date":"2025-07-26","url":"https://github.com/Paspke/scavenger_scanner"},{"source":"pocgithub","id":"nihilor/cve-2025-54313","title":"nihilor/cve-2025-54313","date":"2025-07-26","url":"https://github.com/nihilor/cve-2025-54313"}],"fixes":[{"ecosystem":"npm","package":"eslint-config-prettier","fixed_in":["8.10.2","9.1.2","10.1.8"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"eslint-plugin-prettier","fixed_in":["4.2.4"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"synckit","fixed_in":["0.11.10"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@pkgr/core","fixed_in":["0.2.9"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"napi-postinstall","fixed_in":["0.3.2"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"got-fetch","fixed_in":["6.0.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"eslint-config-prettier","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"8.10.1"},{"last_affected":"8.10.1"},{"fixed":"8.10.2"}]}],"versions":["8.10.1"]},{"source":"ghsa","ecosystem":"npm","package":"eslint-config-prettier","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"9.1.1"},{"last_affected":"9.1.1"},{"fixed":"9.1.2"}]}],"versions":["9.1.1"]},{"source":"ghsa","ecosystem":"npm","package":"eslint-config-prettier","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"10.1.6"},{"last_affected":"10.1.7"},{"fixed":"10.1.8"}]}]},{"source":"ghsa","ecosystem":"npm","package":"eslint-plugin-prettier","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.2.2"},{"last_affected":"4.2.3"},{"fixed":"4.2.4"}]}]},{"source":"ghsa","ecosystem":"npm","package":"synckit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.11.9"},{"last_affected":"0.11.9"},{"fixed":"0.11.10"}]}],"versions":["0.11.9"]},{"source":"ghsa","ecosystem":"npm","package":"@pkgr/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.2.8"},{"last_affected":"0.2.8"},{"fixed":"0.2.9"}]}],"versions":["0.2.8"]},{"source":"ghsa","ecosystem":"npm","package":"napi-postinstall","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.3.1"},{"last_affected":"0.3.1"},{"fixed":"0.3.2"}]}],"versions":["0.3.1"]},{"source":"ghsa","ecosystem":"npm","package":"got-fetch","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.1.11"},{"last_affected":"5.1.12"},{"fixed":"6.0.0"}]}]},{"source":"osv","ecosystem":"npm","package":"eslint-config-prettier","ranges":[{"type":"SEMVER","events":[{"introduced":"8.10.1"},{"fixed":"8.10.2"}]}],"versions":["8.10.1"]},{"source":"osv","ecosystem":"npm","package":"eslint-config-prettier","ranges":[{"type":"SEMVER","events":[{"introduced":"9.1.1"},{"fixed":"9.1.2"}]}],"versions":["9.1.1"]},{"source":"osv","ecosystem":"npm","package":"eslint-config-prettier","ranges":[{"type":"SEMVER","events":[{"introduced":"10.1.6"},{"fixed":"10.1.8"}]}]},{"source":"osv","ecosystem":"npm","package":"eslint-plugin-prettier","ranges":[{"type":"SEMVER","events":[{"introduced":"4.2.2"},{"fixed":"4.2.4"}]}]},{"source":"osv","ecosystem":"npm","package":"synckit","ranges":[{"type":"SEMVER","events":[{"introduced":"0.11.9"},{"fixed":"0.11.10"}]}],"versions":["0.11.9"]},{"source":"osv","ecosystem":"npm","package":"@pkgr/core","ranges":[{"type":"SEMVER","events":[{"introduced":"0.2.8"},{"fixed":"0.2.9"}]}],"versions":["0.2.8"]},{"source":"osv","ecosystem":"npm","package":"napi-postinstall","ranges":[{"type":"SEMVER","events":[{"introduced":"0.3.1"},{"fixed":"0.3.2"}]}],"versions":["0.3.1"]},{"source":"osv","ecosystem":"npm","package":"got-fetch","ranges":[{"type":"SEMVER","events":[{"introduced":"5.1.11"},{"fixed":"6.0.0"}]}]}],"products":[{"vendor":"alexghr","product":"got-fetch"},{"vendor":"homarr","product":"homarr"},{"vendor":"prettier","product":"eslint-config-prettier"},{"vendor":"prettier","product":"eslint-plugin-prettier"},{"vendor":"un-ts","product":"napi-postinstall"},{"vendor":"un-ts","product":"pkgr\\/core"},{"vendor":"un-ts","product":"synckit"}],"references":[{"url":"https://socket.dev/blog/npm-phishing-campaign-leads-to-prettier-tooling-packages-compromise","tags":["Third Party Advisory","article","web"]},{"url":"https://www.bleepingcomputer.com/news/security/popular-npm-linter-packages-hijacked-via-phishing-to-drop-malware/","tags":["exploit","Exploit","Third Party Advisory","web"]},{"url":"https://github.com/prettier/eslint-config-prettier/issues/339","tags":["Issue Tracking","report","web"]},{"url":"https://www.npmjs.com/package/eslint-config-prettier?activeTab=versions","tags":["Product","web"]},{"url":"https://www.stepsecurity.io/blog/supply-chain-security-alert-eslint-config-prettier-package-shows-signs-of-compromise","tags":["Exploit","Third Party Advisory","article","web"]},{"url":"https://news.ycombinator.com/item?id=44609732","tags":["Issue Tracking","web"]},{"url":"https://news.ycombinator.com/item?id=44608811","tags":["Issue Tracking","web"]},{"url":"https://github.com/community-scripts/ProxmoxVE/discussions/6115","tags":["Third Party Advisory","web"]},{"url":"https://www.endorlabs.com/learn/cve-2025-54313-eslint-config-prettier-compromise----high-severity-but-windows-only","tags":["Third Party Advisory","web"]},{"url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-54313","tags":["government-resource","US Government Resource","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-54313","tags":["advisory"]},{"url":"https://www.bleepingcomputer.com/news/security/popular-npm-linter-packages-hijacked-via-phishing-to-drop-malware","tags":["web"]},{"url":"https://github.com/prettier/eslint-config-prettier/commit/9b0b0a47ec28a7a83cf65e8436a8776910379385","tags":["web"]},{"url":"https://github.com/prettier/eslint-plugin-prettier/commit/ec39dd4400f10c52d10cd991c10fa8de51ceb854","tags":["web"]},{"url":"https://github.com/un-ts/napi-postinstall/commit/38b4e95cf554e2549b9e1e2c4ff6bff4da9a65f9","tags":["web"]},{"url":"https://github.com/un-ts/pkgr/commit/e1420c99e44d8a2ae949381f9fbe1af5ba9cb1dd","tags":["web"]},{"url":"https://github.com/un-ts/synckit/commit/8f2ee32d4f75736a1c8d7e1101190a71e48909e4","tags":["web"]},{"url":"https://secure.software/npm/packages/got-fetch","tags":["web"]},{"url":"https://checkmarx.com/zero-post/supply-chain-phishing-campaign-drops-more-malware-into-npm-got-fetch-5-1","tags":["web"]},{"url":"https://github.com/advisories/GHSA-f29h-pxvx-f335"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/54xxx/CVE-2025-54313.json","tags":["advisory"]},{"url":"https://github.com/prettier/eslint-config-prettier","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-54313","description":"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.","status":"published","published":"2025-07-19T00:00:00Z","modified":"2026-02-26T17:50:26.767Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N","level":"high","assessor":"cna"}],"cwes":["CWE-506"],"updated_at":"2026-11-02T14:32:27.603809Z"}],"euvd":[{"id":"EUVD-2025-21972","description":"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.","status":"published","published":"2025-07-19T00:00:00Z","modified":"2026-02-26T17:50:26Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N","level":"high"}],"exploited_since":"2026-01-22","updated_at":"2026-11-02T19:48:19.481461Z"}],"ghsa":[{"id":"GHSA-f29h-pxvx-f335","title":"eslint-config-prettier, eslint-plugin-prettier, synckit, @pkgr/core, napi-postinstall have embedded malicious code","description":"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.","status":"published","published":"2025-07-19T18:30:33Z","modified":"2026-01-22T21:52:57Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N","level":"high"}],"cwes":["CWE-506"],"updated_at":"2026-11-02T14:39:19.525691Z"}],"kev":[{"id":"CVE-2025-54313","title":"Prettier eslint-config-prettier Embedded Malicious Code Vulnerability","description":"Prettier eslint-config-prettier contains an embedded malicious code vulnerability. Installing an affected package executes an install.js file that launches the node-gyp.dll malware on Windows.","cwes":["CWE-506"],"kev":{"date_added":"2026-01-22","due_date":"2026-02-12","required_action":"Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.","known_ransomware_use":"Unknown"},"updated_at":"2026-11-02T17:00:15.999436Z"}],"nvd":[{"id":"CVE-2025-54313","description":"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.","status":"published","published":"2025-07-19T17:15:23.733Z","modified":"2026-06-17T09:39:49.897Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-506"],"updated_at":"2026-11-02T14:11:18.782156Z"}],"osv":[{"id":"CVE-2025-54313","description":"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.","status":"published","published":"2025-07-19T00:00:00Z","modified":"2026-10-28T02:31:03.328774006Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N","level":"high"}],"cwes":["CWE-506"],"updated_at":"2026-11-02T15:44:50.863921Z"},{"id":"GHSA-f29h-pxvx-f335","title":"eslint-config-prettier, eslint-plugin-prettier, synckit, @pkgr/core, napi-postinstall have embedded malicious code","description":"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.","status":"published","published":"2025-07-19T18:30:33Z","modified":"2026-02-03T03:09:09.088269Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N","level":"high"}],"cwes":["CWE-506"],"updated_at":"2026-11-02T15:46:45.639885Z"}]}}
