MAL-2026-18452Malicious code in sol-wallet-adapter (npm)
| Ecosystem | Package | Version |
|---|---|---|
| npm | sol-wallet-adapter | * |
| npm | sol-wallet-adapter | 1.0.0 |
| npm | sol-wallet-adapter | 1.0.1 |
| npm | sol-wallet-adapter | 1.0.7 |
{"schema_version":"1.7.4","id":"MAL-2026-18452","published":"2026-11-01T01:46:22Z","modified":"2026-11-02T21:12:30.382744866Z","aliases":["GHSA-43pw-v6x2-9gh4"],"summary":"Malicious code in sol-wallet-adapter (npm)","details":"sol-wallet-adapter takes the unscoped name of @project-serum/sol-wallet-adapter and has no functional code. Its preinstall script runs `node preinstall.js` on npm install, which POSTs the machine's hostname, the OS username and the local time to the Discord webhook `https://canary.discord.com/api/webhooks/1566232728179843243/pM5rDIrCRrEpQRbA7ibaiQk1XOQlIftmBacA5s8jD8NvXn5W-rS832DOWHQS-G-j3N6U` as \"PC Notifier\". Versions 1.0.0 and 1.0.1 were published on 2026-11-01 by the npm account cutekitten05; after they were removed, the account bigdevin55 re-created the name and published 1.0.7 with the same script on 2026-11-02, alongside contracts-upgradeable.\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (9663e2263b8a582279d8e96359881186bcaae3b2239c1f06e8ecddc04934ae7f)\nOn every `npm install`, the package's `preinstall` lifecycle script (preinstall.js) reads `os.hostname()` and `os.userInfo().username` and POSTs them, with a timestamp, to a hardcoded Discord webhook at https://canary.discord.com/api/webhooks/1566232728179843243/.... The exfiltration fires automatically before any user action and is directed to an attacker-controlled channel. The published name `sol-wallet-adapter` resembles the Solana wallet-adapter ecosystem, but the package internally identifies as `cutekitten-test` and ships only a trivial stub index.js; the install-time beacon is the sole functional code.\n\n## Source: ghsa-malware (f038ffd59e28e32f91843379d3e8a4a4ff0e934bf02b8903a3b2b836162fce15)\nAny computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.\n\n## Source: ossf-package-analysis (07cf0cd27f95e20e7fe52b859d73556e78f15ca06afdcab19eb43a2616895dab)\nThe OpenSSF Package Analysis project identified 'sol-wallet-adapter' @ 1.0.7 (npm) as malicious.\n\nIt is considered malicious because:\n\n- The package communicates with a domain associated with malicious activity.\n","affected":[{"package":{"name":"sol-wallet-adapter","ecosystem":"npm"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}],"versions":["1.0.0","1.0.1","1.0.7"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"path":"preinstall.js","sha256":"7993cb7fb7b4ec406bd47343b2a1ee715d08a0f32960a6093fb41dc518d4f436","tlsh":"3d4184c784f11a301a17c1ec853346053a39ce032bdaed23f69d43665f8846ec2b2ee9"},{"path":"package.json","sha256":"dfeda90b9284e4ba7c1dc613aec4ed9552eb47893292bdce405b266032c904c2","tlsh":"a5e09239c821ac3325c8efb15d27518262d24c0745247d0cb7d7001c4b9e66aa5ff66a"}]}}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/sol-wallet-adapter"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-43pw-v6x2-9gh4"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/sol-wallet-adapter/v/1.0.0"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/sol-wallet-adapter/v/1.0.7"}],"database_specific":{"iocs":{"files":[{"digests":{"sha256":"dfeda90b9284e4ba7c1dc613aec4ed9552eb47893292bdce405b266032c904c2"},"note":"preinstall runs `node preinstall.js`, which POSTs hostname and username to a Discord webhook (sol-wallet-adapter@1.0.0).","paths":["package.json"],"source":"PACKAGE_ARCHIVE"},{"digests":{"sha256":"7993cb7fb7b4ec406bd47343b2a1ee715d08a0f32960a6093fb41dc518d4f436"},"note":"Executed by the preinstall script of sol-wallet-adapter@1.0.0.","paths":["preinstall.js"],"source":"PACKAGE_ARCHIVE"},{"digests":{"sha256":"062e68a9970cf8d878f1f02bd53b8bdb152c54db57b381ee81b24200e49a09e9"},"note":"preinstall runs `node preinstall.js`, which POSTs hostname and username to a Discord webhook (sol-wallet-adapter@1.0.1).","paths":["package.json"],"source":"PACKAGE_ARCHIVE"},{"digests":{"sha256":"7993cb7fb7b4ec406bd47343b2a1ee715d08a0f32960a6093fb41dc518d4f436"},"note":"Executed by the preinstall script of sol-wallet-adapter@1.0.1.","paths":["preinstall.js"],"source":"PACKAGE_ARCHIVE"},{"digests":{"sha256":"5ead50b074ac5e37fc015cce6fb5436898eb9dbd41d08043156d28a8f04c8fb6"},"note":"preinstall runs `node preinstall.js`, which POSTs hostname and username to a Discord webhook (sol-wallet-adapter@1.0.7).","paths":["package.json"],"source":"PACKAGE_ARCHIVE"},{"digests":{"sha256":"d2709b8afcf5e5e2859d0b56c8f119b73c98fc56c32fb072baea5b51b1cc3554"},"note":"Executed by the preinstall script of sol-wallet-adapter@1.0.7.","paths":["preinstall.js"],"source":"PACKAGE_ARCHIVE"}],"urls":["https://canary.discord.com/api/webhooks/1566232728179843243/pM5rDIrCRrEpQRbA7ibaiQk1XOQlIftmBacA5s8jD8NvXn5W-rS832DOWHQS-G-j3N6U"]},"malicious-packages-origins":[{"import_time":"2026-11-02T06:26:01.467375362Z","modified_time":"2026-11-02T03:21:51Z","sha256":"07cf0cd27f95e20e7fe52b859d73556e78f15ca06afdcab19eb43a2616895dab","source":"ossf-package-analysis","versions":["1.0.7"]},{"id":"GHSA-43pw-v6x2-9gh4","import_time":"2026-11-02T16:19:46.127611522Z","modified_time":"2026-11-02T16:14:50Z","ranges":[{"events":[{"introduced":"0"}],"type":"SEMVER"}],"sha256":"f038ffd59e28e32f91843379d3e8a4a4ff0e934bf02b8903a3b2b836162fce15","source":"ghsa-malware"},{"id":"IN-MAL-2026-022487","import_time":"2026-11-02T21:10:54.739919353Z","modified_time":"2026-11-02T20:56:43Z","sha256":"9663e2263b8a582279d8e96359881186bcaae3b2239c1f06e8ecddc04934ae7f","source":"amazon-inspector","versions":["1.0.0"]},{"id":"IN-MAL-2026-022486","import_time":"2026-11-02T21:10:54.673229214Z","modified_time":"2026-11-02T20:56:34Z","sha256":"f2b454c3706f8a63afc408fbf5c45abad92868106ccd14fcc8b0b0d62290320e","source":"amazon-inspector","versions":["1.0.7"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"InvisiRisk, Inc.","contact":["https://www.invisirisk.com","mailto:research@invisirisk.com"],"type":"FINDER"},{"name":"OpenSSF: Package Analysis","contact":["https://github.com/ossf/package-analysis","https://openssf.slack.com/channels/package_analysis"],"type":"FINDER"}]}数据来源:OpenSSF Malicious Packages · Apache-2.0