{"id":"CVE-2025-54313","kind":"vulnerability","aliases":["CVE-2025-54313"],"related":[],"title":"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","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.\n\nCISA 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.","summary":"The eslint-config-prettier npm package carries embedded malicious code: installing it runs an install.js script that launches a node-gyp.dll malware payload on Windows. An attacker gets code execution on the machine that installs the affected package version.","severity":"critical","cvss":7.5,"epss":null,"exploited":true,"exploited_at":"2026-01-22T00:00:00+00:00","products":[{"name":"Prettier eslint-config-prettier","fixed":[],"affected":"","ecosystem":"vendor"},{"name":"prettier eslint-config-prettier","fixed":[],"affected":"= 8.10.1","ecosystem":"vendor"},{"name":"prettier eslint-config-prettier","fixed":[],"affected":"= 9.1.1","ecosystem":"vendor"},{"name":"prettier eslint-config-prettier","fixed":[],"affected":"= 10.1.6","ecosystem":"vendor"},{"name":"prettier eslint-config-prettier","fixed":[],"affected":"= 10.1.7","ecosystem":"vendor"},{"name":"prettier eslint-plugin-prettier","fixed":[],"affected":"= 4.2.2","ecosystem":"vendor"},{"name":"prettier eslint-plugin-prettier","fixed":[],"affected":"= 4.2.3","ecosystem":"vendor"},{"name":"un-ts synckit","fixed":[],"affected":"= 0.11.9","ecosystem":"vendor"},{"name":"un-ts pkgr\\/core","fixed":[],"affected":"= 0.2.8","ecosystem":"vendor"},{"name":"alexghr got-fetch","fixed":[],"affected":"= 5.1.1","ecosystem":"vendor"},{"name":"alexghr got-fetch","fixed":[],"affected":"= 5.1.2","ecosystem":"vendor"},{"name":"un-ts napi-postinstall","fixed":[],"affected":"= 0.3.1","ecosystem":"vendor"},{"name":"homarr","fixed":["1.30.0"],"affected":">= 1.29.0, < 1.30.0","ecosystem":"vendor"}],"ecosystems":["vendor"],"tags":["ci","exploited","javascript","npm","package","windows"],"not_affected_if":["linux-only-installs","version-not-in-affected-range"],"how_to_check":"Run npm ls eslint-config-prettier in each project and check the installed version against the affected versions listed in the advisory.\nSearch lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml) for eslint-config-prettier and look for an install.js or node-gyp.dll artifact in node_modules.","fix":"Remove the affected eslint-config-prettier version, reinstall from a clean lockfile, and move to a version the vendor lists as fixed: unknown in the sources.\nTreat any Windows machine that installed the package as compromised: rotate credentials and review it per CISA's required action (vendor mitigations, or discontinue use).","status":"open","published_at":"2025-07-19T17:15:23+00:00","first_seen_at":"2026-10-23T19:11:51+00:00","triaged_at":"2026-10-23T20:42:36+00:00","updated_at":"2026-10-23T23:44:51+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-23T20:42:36Z","model":"claude-haiku-5-5","output":{"fix":"Remove the affected eslint-config-prettier version, reinstall from a clean lockfile, and move to a version the vendor lists as fixed: unknown in the sources.\nTreat any Windows machine that installed the package as compromised: rotate credentials and review it per CISA's required action (vendor mitigations, or discontinue use).","reach":"internet","summary":"The eslint-config-prettier npm package carries embedded malicious code: installing it runs an install.js script that launches a node-gyp.dll malware payload on Windows. An attacker gets code execution on the machine that installs the affected package version.","category":"package","who_cares":["npm","windows","javascript","ci"],"confidence":0.6,"needs_auth":"no","worst_case":"Attacker runs malware on Windows machines that install the package, exposing local secrets.","analyst_note":"Find the affected and fixed version range and the malware's indicators of compromise in the vendor advisory or the CISA KEV entry (https://www.cisa.gov/known-exploited-vulnerabilities-catalog).","how_to_check":"Run npm ls eslint-config-prettier in each project and check the installed version against the affected versions listed in the advisory.\nSearch lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml) for eslint-config-prettier and look for an install.js or node-gyp.dll artifact in node_modules.\nunknown for the exact affected version range: the sources do not list it.","needs_analyst":true,"not_affected_if":["linux-only-installs","version-not-in-affected-range"],"user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"critical"},"cost_usd":0.000543,"input_tokens":2556,"output_tokens":574,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-01':167C '-2025':20A,23A '-54313':21A,24A '/core':68A '10.1.6':7A '10.1.7':9A '22':166C '8.10.1':5A '9.1.1':6A 'action':157C 'affect':126B,142C 'alexghr':69A,73A 'appli':158C 'applic':164C 'attack':116B 'bod':165C 'carri':97B 'chain':17A 'ci':84B 'cisa':155C 'cloud':170C 'code':13A,100B,118B,138C 'compromis':18A 'config':3A,28A,33A,38A,43A,48A,93B,132C 'contain':134C 'cve':19A,22A 'discontinu':173C 'embed':11A,98B,136C 'eslint':2A,27A,32A,37A,42A,47A,52A,57A,92B,131C 'eslint-config-pretti':1A,91B,130C 'eslint-config-prettier':26A,31A,36A,41A,46A 'eslint-plugin-prettier':51A,56A 'execut':119B,144C 'exploit':85B 'fetch':72A,76A 'file':147C 'follow':163C 'get':117B 'got':71A,75A 'got-fetch':70A,74A 'guidanc':168C 'homarr':83A 'instal':101B,124B,140C 'install.js':105B,146C 'instruct':162C 'javascript':86B 'launch':108B,149C 'machin':122B 'malici':12A,99B,137C 'malwar':111B,152C 'mitig':159C,179C 'napi':81A 'napi-postinstall':80A 'node-gyp.dll':110B,151C 'npm':87B,95B 'packag':88B,96B,127B,143C 'payload':112B 'per':160C 'pkgr':67A 'plugin':53A,58A 'postinstall':82A 'prettier':4A,25A,29A,30A,34A,35A,39A,40A,44A,45A,49A,50A,54A,55A,59A,94B,129C,133C 'product':177C 'requir':156C 'run':103B 'script':106B 'servic':171C 'suppli':16A 'synckit':63A 'ts':62A,66A,79A 'un':61A,65A,78A 'un-ts':60A,64A,77A 'unavail':181C 'use':174C 'vendor':161C 'version':128B 'vulner':139C 'window':89B,114B,154C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2025-07-19T17:15:23+00:00","kev":{"dateAdded":"2026-01-22","dueDate":"2026-02-12","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.","knownRansomwareCampaignUse":"Unknown"},"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N","cvss_by":"cve@mitre.org","poc_count":0,"sources":[{"source":"kev","external_id":"CVE-2025-54313","url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog?search_api_fulltext=CVE-2025-54313","severity":null,"published_at":"2026-01-22T00:00:00+00:00","modified_at":null,"first_seen_at":"2026-10-23T19:11:51+00:00","fetched_at":"2026-10-25T14:39:38+00:00","note":null},{"source":"nvd","external_id":"CVE-2025-54313","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-54313","severity":null,"published_at":"2025-07-19T17:15:23+00:00","modified_at":"2026-06-17T09:39:49+00:00","first_seen_at":"2026-10-23T23:44:51+00:00","fetched_at":"2026-10-23T23:44:51+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}