{"id":"CVE-2025-13437","revision":"fbe793af68964cba9e288cbf2659f04e","records":[{"revision":"fbe793af68964cba9e288cbf2659f04e","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2025-13437","aliases":[],"title":"Arbitrary node_modules Directory Deletion in Google zx","description":"When zx is invoked with --prefer-local=<path>, the CLI creates a symlink named ./node_modules pointing to <path>/node_modules. Due to a logic error in src/cli.ts (linkNodeModules / cleanup), the function returns the target path instead of the alias (symlink path). The later cleanup routine removes what it received, which deletes the target directory itself. Result: zx can delete an external <path>/node_modules outside the current working directory.","state":0,"publishedAt":"2025-11-20T16:25:16.866+00:00","modifiedAt":"2025-11-20T16:49:32.47+00:00","affected":[{"ecosystem":"Vendor product","name":"zx","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"defaultStatus\": \"unaffected\",\n                    \"product\": \"zx\",\n                    \"repo\": \"https://github.com/google/zx\",\n                    \"vendor\": \"Google\",\n                    \"versions\": [\n                        {\n                            \"status\": \"affected\",\n                            \"version\": \"8.8.4\",\n                            \"versionType\": \"semver\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 4.0","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:H/SC:N/SI:H/SA:H/E:U","score":5.6,"severity":"MEDIUM"}],"references":["https://github.com/google/zx/issues/1348"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2025-13437","license":"CVE Program Terms of Use","key":"cve-program:CVE-2025-13437","identifiers":["CVE-2025-13437"]},"retained":false,"historicalAffected":[]}],"coverage":[]}