{"id":"MAL-2026-17651","revision":"227e317aa5cb48508c6f30465ac0e1bc","records":[{"revision":"227e317aa5cb48508c6f30465ac0e1bc","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"MAL-2026-17651","aliases":[],"title":"Malicious code in @praveenvjpm/color-utils-7210 (npm)","description":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (e0b29d9da4319a314669b87ffd4bc0d736dbf3f4c16803e0363ecb36288c7bb2)\nOn npm install, the package's preinstall hook executes install.js, which collects host identifiers (os.hostname(), process.cwd(), username) and reads flag files from /flag, /flag.txt, /app/flag, /home/node/flag, and /tmp/flag, then PUTs the collected data to the hardcoded bare-IP endpoint http://154.57.164.66:39270/api/modules/* over plain HTTP. install.js is additionally wrapped as a PowerShell here-string (opening with @\" and closing with \"@ | Out-File -Encoding ascii install.js), structured as a polyglot that can rewrite itself on Windows before Node executes the exfiltration payload. The behavior fires automatically on default install and has no relationship to the package's stated color-utility purpose.\n","state":0,"publishedAt":"2026-10-08T03:36:19+00:00","modifiedAt":"2026-10-08T04:00:04.2270217+00:00","affected":[{"ecosystem":"npm","name":"@praveenvjpm/color-utils-7210","ranges":[],"versions":["1.0.0"],"rawVersionEvidence":null}],"metrics":[],"references":["https://www.npmjs.com/package/@praveenvjpm/color-utils-7210/v/1.0.0"],"sourceUrl":"https://osv.dev/vulnerability/MAL-2026-17651","license":"OSV · upstream source license applies","key":"osv:MAL-2026-17651","identifiers":["MAL-2026-17651"]},"retained":false,"historicalAffected":[]}],"coverage":[]}