{"id":"MAL-2026-18182","revision":"2bb4535bea384786a081813b52c287ae","records":[{"revision":"2bb4535bea384786a081813b52c287ae","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"MAL-2026-18182","aliases":[],"title":"Malicious code in test-brotli2-testmetest (npm)","description":"test-brotli2-testmetest 1.0.0 ships a rebuild of the data-pipeline-testmetest 2.0.1 credential stealer and runs it on `npm install`: its `install` script runs `node-gyp rebuild`, and the `binding.gyp` source `<!(env node index.js >/dev/null 2>&1; echo stub.c)` makes node-gyp run `index.js`, an obfuscated loader that decrypts a Brotli-compressed payload and pipes it into Bun. Published by npm account `testnewtestme2` on 2026-10-21.\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (191cc40d7896b393d37ba01dd32b1087b769c9fc7dd7b2debb32ba4ef34de11d)\nThe package's scripts.install runs node-gyp rebuild, and binding.gyp uses GYP command-expansion (`<!(env node index.js...; echo stub.c)`) in its sources list to invoke index.js during the configure phase. The binding.gyp declares target type 'none' and ships no C/C++ sources, so there is nothing to actually build — the file exists solely to trigger execution of index.js at install. index.js is a ~586 KB Caesar-shifted (+5) character-code array passed to eval; the decoded program imports node:crypto and uses createDecipheriv('aes-128-gcm',...) to decrypt further hex ciphertext blobs and execute the plaintext. No readable logic, URLs, or purpose is exposed in source. Installing this package on a default `npm install` runs this opaque encrypted payload on the installer's machine. CWE-506.\n","state":0,"publishedAt":"2026-10-21T18:00:00+00:00","modifiedAt":"2026-10-22T06:45:05.7417756+00:00","affected":[{"ecosystem":"npm","name":"test-brotli2-testmetest","ranges":[],"versions":["1.0.0"],"rawVersionEvidence":null}],"metrics":[],"references":["https://www.npmjs.com/package/test-brotli2-testmetest/v/1.0.0"],"sourceUrl":"https://osv.dev/vulnerability/MAL-2026-18182","license":"OSV · upstream source license applies","key":"osv:MAL-2026-18182","identifiers":["MAL-2026-18182"]},"retained":false,"historicalAffected":[]}],"coverage":[]}