{"id":"MAL-2026-4544","summary":"Malicious code in cwao (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (f48b0fefe9d99bcebeaa878f5bb2ca40df917b40785d6b5b8a31cf6e70a44970)\npackage.json declares \"preinstall\": \"./vendor/setup\", which directly executes a 976,568-byte packed Linux x86 ELF binary shipped in the tarball. The README advertises the package as a pure-JS CosmWasm/Arweave AO SDK and never mentions a native binary. The binary is opaque (mostly non-printable, UPX-style packing) with no shipped source, no binding.gyp, no node-gyp/prebuild-install manifest, no version pin and no hash verification. Embedded string fragments include LIBBPF, PTRACE, /proc, HTTP/1.1, https://, RSA, and USERPROFILE — capabilities (kernel BPF, process tracing, outbound HTTPS, credential paths) entirely unrelated to a JavaScript SDK. Every installer running `npm install cwao` on Linux executes this attacker-controlled native code with the user's privileges before any JavaScript loads. This matches the generic-binary-runner-dropper pattern: undocumented binary, purpose mismatch with the advertised package function, opaque payload, no integrity check, direct lifecycle invocation.\n\n## Source: google-open-source-security (146faaf0d97c6a533a969bc3f3f117811f9317dc865ed4ab37f1679842ddeaae)\nThis package was compromised as part of the IronWorm campaign. This campaign executes a malicious binary payload during installation via a preinstall hook. The payload is a Rust-built infostealer that targets developer environments, scanning for and harvesting credentials related to cloud providers, object storage, databases, source-control, package registries, and AI developer tools. It also targets cryptocurrency wallets, specifically injecting a malicious JavaScript hook into the Exodus desktop wallet to capture passwords and recovery phrases. Furthermore, the malware exhibits worm-like behavior by stealing GitHub and NPM credentials to push malicious updates to the victim's repositories and publish trojanized packages, and it uses an eBPF-based kernel rootkit to hide its processes and network connections on Linux systems.\n","modified":"2026-06-04T23:16:41.719408230Z","published":"2026-05-26T01:00:11Z","database_specific":{"malicious-packages-origins":[{"sha256":"f48b0fefe9d99bcebeaa878f5bb2ca40df917b40785d6b5b8a31cf6e70a44970","import_time":"2026-05-26T05:53:19.818631405Z","id":"IN-MAL-2026-004812","modified_time":"2026-05-26T01:00:11Z","versions":["0.5.6"],"source":"amazon-inspector"},{"import_time":"2026-06-04T22:42:01.227855Z","modified_time":"2026-06-04T22:28:51.769005667Z","versions":["0.5.6"],"source":"google-open-source-security","sha256":"146faaf0d97c6a533a969bc3f3f117811f9317dc865ed4ab37f1679842ddeaae"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/cwao/v/0.5.6"},{"type":"ARTICLE","url":"http://www.ox.security/blog/ironworm-supply-chain-malware-hits-npm/"},{"type":"ARTICLE","url":"https://research.jfrog.com/post/iron-worm-shai-hulud-rustier-cousin/"}],"affected":[{"package":{"name":"cwao","ecosystem":"npm","purl":"pkg:npm/cwao"},"versions":["0.5.6"],"database_specific":{"cwes":[{"description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code","cweId":"CWE-506"}],"indicators":{"evidence_files":[{"sha256":"ca27f75993ecf5d67e86785db2b802ae5d29f3be58c72dc3a099860dc7ab4c73","tlsh":"f5d0a770ce50d97308c452a4453741077a514c17180cfc0533c3621cea9d92728be80d","path":"package.json"},{"path":"vendor/setup","sha256":"36abd242ddaa27f0160c539377a0e92cf781c1695137850acc87e3892b436d36","tlsh":"0c2533ab0025062b904d957a58963bd279c17c81afcc3662664dae742fb59c3cf63fc3"}],"package_integrity":[{"hashes":{"sha1":"7262681647715f30866efa1297c35d613c2a3378","sha512_sri":"sha512-uac/OmjHf5ooHW/a20jqdVwK5E9OGdP/AUTk/DtZKeHfmS8BJFaoIZgm5j0ldDn/g4lVg0NpHGr8tJWd2CggoQ=="},"filename":"cwao-0.5.6.tgz"}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/cwao/MAL-2026-4544.json"}}],"schema_version":"1.7.5","credits":[{"name":"Amazon Inspector","contact":["actran@amazon.com"],"type":"FINDER"}]}