{"id":"MAL-2026-10032","summary":"Malicious code in @wagni_bot/polygon-sdk (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (f85b2cfd5c419bda02db4b760641cc2ff9c9214b2e17cf6689bb7936866944e7)\nThe package's postinstall.js runs unconditionally on `npm install` and scans the installer's current working directory and home directory — including ~/.ssh, ~/.ethereum, ~/.config/ethereum, ~/.solana, ~/.bitcoin, and ~/Library/Ethereum — for wallet keystores, PEM/SSH private keys (id_rsa, id_ed25519,.pem,.key), and files matching seed/mnemonic/keystore/wallet/secret/private patterns. Matching file contents (truncated to 10000 bytes) plus a filtered subset of process.env (variables whose names contain PRIVATE, SECRET, TOKEN, KEY, PASSWORD, MNEMONIC, SEED, WALLET, or AWS) are POSTed to a hardcoded bare-IP endpoint at http://107.161.90.180:7777. Each request also carries os.hostname(), os.userInfo().username, and process.cwd() so the attacker can attribute the stolen secrets to a specific victim host. The advertised `main` (index.js) exports an empty object — the package has no legitimate functionality; the credential stealer is its only behavior. The name `@wagni_bot/polygon-sdk` with description 'Unofficial polygon-sdk SDK' impersonates the Polygon blockchain SDK ecosystem to attract crypto developers whose environments are especially likely to contain wallet keystores and seed phrases.\n","modified":"2026-07-09T16:31:50.941539750Z","published":"2026-07-09T15:15:03Z","database_specific":{"malicious-packages-origins":[{"import_time":"2026-07-09T16:20:33.334188241Z","sha256":"08175e3395c5f9ca2060277990b8f2a3ca0b0c76fb7b617984a7851154d2d0a1","versions":["1.1.5"],"source":"amazon-inspector","modified_time":"2026-07-09T15:16:00Z","id":"IN-MAL-2026-009023"},{"import_time":"2026-07-09T16:20:36.564843073Z","sha256":"0b8505aa9556e8a5cda038f6ccca378e1141c080f1745e6dfc246dd64a779048","versions":["1.1.4"],"source":"amazon-inspector","modified_time":"2026-07-09T15:20:30Z","id":"IN-MAL-2026-009051"},{"import_time":"2026-07-09T16:20:38.951483534Z","sha256":"21057fe7bf57d07370e9d3864fdc96bcef3ce826661bcd36f036dc748283c956","versions":["1.0.0"],"source":"amazon-inspector","modified_time":"2026-07-09T15:25:02Z","id":"IN-MAL-2026-009079"},{"import_time":"2026-07-09T16:20:37.309200251Z","sha256":"3b51be1207d0630482354c1080c1cbf25beffe3e0cb83f189a44aad2f5d932f6","versions":["1.1.1"],"source":"amazon-inspector","modified_time":"2026-07-09T15:22:04Z","id":"IN-MAL-2026-009061"},{"import_time":"2026-07-09T16:20:37.54281449Z","sha256":"6a62845cf651614f2d1b7ee771bc313596eecf38857339cae14d23d95886087d","versions":["1.1.0"],"source":"amazon-inspector","modified_time":"2026-07-09T15:22:24Z","id":"IN-MAL-2026-009063"},{"import_time":"2026-07-09T16:20:36.907371066Z","sha256":"f85b2cfd5c419bda02db4b760641cc2ff9c9214b2e17cf6689bb7936866944e7","versions":["1.1.3"],"source":"amazon-inspector","modified_time":"2026-07-09T15:21:20Z","id":"IN-MAL-2026-009056"},{"import_time":"2026-07-09T16:20:32.94041606Z","sha256":"f9ea8fe37b0fd16cf29e1210dc00124d06e00814cb51298993d4aade97655e55","source":"amazon-inspector","versions":["1.2.0"],"modified_time":"2026-07-09T15:15:03Z","id":"IN-MAL-2026-009017"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/@wagni_bot/polygon-sdk/v/1.1.5"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@wagni_bot/polygon-sdk/v/1.1.4"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@wagni_bot/polygon-sdk/v/1.0.0"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@wagni_bot/polygon-sdk/v/1.1.1"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@wagni_bot/polygon-sdk/v/1.1.0"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@wagni_bot/polygon-sdk/v/1.1.3"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@wagni_bot/polygon-sdk/v/1.2.0"}],"affected":[{"package":{"name":"@wagni_bot/polygon-sdk","ecosystem":"npm","purl":"pkg:npm/%40wagni_bot/polygon-sdk"},"versions":["1.1.5","1.1.4","1.0.0","1.1.1","1.1.0","1.1.3","1.2.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@wagni_bot/polygon-sdk/MAL-2026-10032.json","indicators":{"package_integrity":[{"filename":"polygon-sdk-1.1.5.tgz","hashes":{"sha512_sri":"sha512-NLYDGe1Gh4dB48vE7Oaaee9h5FNKmwr7oMQ9w1rON9UQa7LvR0oZFRuEusCi2D98SVYobPTL3OiyUZwYuXbn0w==","sha1":"d9f686bdd52602590d1e1ebf8481251cd2d79585"}}],"evidence_files":[{"sha256":"3d8a59e627a451040c959870dace8fb417d1f9c55c6e2d2190637289212f8b3f","path":"postinstall.js","tlsh":"5c8155c4b1fa520958a341eefa5b220210717d573848e4a9fedc9f456f56240af53bfc"},{"sha256":"26568f72760885937f432fc4348f8aa37497cee0c4eb3d0d109e8d342bb1fcb7","path":"package.json","tlsh":"add05e204e505b33b8c81bed083b41aaa9f3491b501c692c57db2894874e37f98bb22e"}]},"cwes":[{"description":"The product contains code that appears to be malicious in nature.","cweId":"CWE-506","name":"Embedded Malicious Code"},{"description":"The product contains code that appears to be malicious in nature.","cweId":"CWE-506","name":"Embedded Malicious Code"},{"description":"The product contains code that appears to be malicious in nature.","cweId":"CWE-506","name":"Embedded Malicious Code"},{"description":"The product contains code that appears to be malicious in nature.","cweId":"CWE-506","name":"Embedded Malicious Code"},{"description":"The product contains code that appears to be malicious in nature.","cweId":"CWE-506","name":"Embedded Malicious Code"},{"description":"The product contains code that appears to be malicious in nature.","cweId":"CWE-506","name":"Embedded Malicious Code"},{"description":"The product contains code that appears to be malicious in nature.","cweId":"CWE-506","name":"Embedded Malicious Code"}]}}],"schema_version":"1.7.5","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}