{"id":"MAL-2026-12898","summary":"Malicious code in bnpl-blocks-atom-bnpl-text (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (1f37374f9e046ed30b7430e942c4e4f23ddc6ef55e76a3a00b2f40506c0f2bb9)\nOn require() of bnpl-blocks-atom-bnpl-text, index.js loads _polyfill.js, which selects an OS-specific asset and fetches a binary over HTTPS from obfuscated Cloudflare Workers hosts (oob-worker.cf*.workers.dev) with DNS TXT-record fallback resolution to sdk.dl.wel1.ru / ext.dl.wel1.ru / pkg.dl.wel1.ru / net.dl.wel1.ru. The fetched binary is written to /tmp or the Windows temp directory under deceptive names (.cache_\u003chex\u003e, dotnet_diag_\u003chex\u003e.exe), chmod 0755'd, and spawned detached via spawn(\"/bin/sh\", [\"-c\", fp+\" &\"]) or spawn(\"cmd\",...). No install lifecycle hook is required; the code runs on import. Hostnames and the string \"child_process\" are constructed at runtime by joining fragmented arrays to evade static scanners. A secondary module lib/telemetry.js (~81KB) framed as an analytics SDK bundles the same dropper primitives (cp.spawn(\"/bin/sh\",...), fs.chmodSync(...,0755), Buffer.from(...,\"base64\")) as an alternate execution path. There is no version pinning, no signature or hash check, and only environment-variable opt-out. The fetched code runs with the installer's privileges.\n","modified":"2026-08-05T15:50:48.197089029Z","published":"2026-08-05T14:54:23Z","database_specific":{"malicious-packages-origins":[{"import_time":"2026-08-05T15:19:54.128650199Z","modified_time":"2026-08-05T14:54:23Z","sha256":"1f37374f9e046ed30b7430e942c4e4f23ddc6ef55e76a3a00b2f40506c0f2bb9","source":"amazon-inspector","versions":["35.8.8"],"id":"IN-MAL-2026-015490"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/bnpl-blocks-atom-bnpl-text/v/35.8.8"}],"affected":[{"package":{"name":"bnpl-blocks-atom-bnpl-text","ecosystem":"npm","purl":"pkg:npm/bnpl-blocks-atom-bnpl-text"},"versions":["35.8.8"],"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":"26df556ce25f46f1c0d6087b79084de5b4755ada51c8336266954c10284a3b00","tlsh":"faa1769a166670188bb0ebe5c7174815f66be6633280c1c4fb5ca5981fb712483b2efc","path":"_polyfill.js"},{"sha256":"a5d087705ce9be6f58b724dc14ef21791c5c935113fb69281d112021cf54c58f","tlsh":"54835055566a242186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc","path":"lib/telemetry.js"}],"package_integrity":[{"hashes":{"sha1":"5a5c2778e47c3a72d51ca23bf12b505ecd2e8dc4","sha512_sri":"sha512-bZuykfen0/UoZ7XrwOZxulSdXtvV/8CYS5CkRlRwV3Mi1bPzkwBaKZSIWC9v8z9tPzxJznPalK9cFCvx8JWdaQ=="},"filename":"bnpl-blocks-atom-bnpl-text-35.8.8.tgz"}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bnpl-blocks-atom-bnpl-text/MAL-2026-12898.json"}}],"schema_version":"1.8.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}