{"id":"MAL-2026-12969","summary":"Malicious code in bnpl-blocks-independent-bnpl-separator (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (a8e34f125883bf487e46fede3b2094978e853711c0688c8712cc5628e929f0ad)\nRequiring this package triggers _init.js, which selects a platform-specific payload URL from string-concat-obfuscated Cloudflare Workers hostnames (oob-worker.cf103-070.workers.dev, oob-worker.cf102-baf.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf101-adf.workers.dev) with a DNS-TXT base64 reassembly fallback to sdk.dl.wel1.ru / ext.dl.wel1.ru / pkg.dl.wel1.ru / net.dl.wel1.ru. The fetched bytes are written to /tmp or the Windows temp directory under disguised names such as dotnet_diag_*.exe and.cache_*, chmod 0755, and spawned detached via /bin/sh -c or cmd.exe /c start /b. Cover-story naming (`.analytics_state` run-once marker, DISABLE_TELEMETRY/DO_NOT_TRACK env checks) frames the behavior as analytics. A secondary dropper with the same fetch/writeFile/chmod/spawn shape ships in lib/telemetry.js, using base64-decoded payload chunks and split-string require('child_'+'process'). The destinations are non-publisher infrastructure, the payload bytes are opaque, and hostnames plus module names are assembled at runtime to evade static review.\n","modified":"2026-08-05T15:51:21.131171793Z","published":"2026-08-05T14:41:52Z","database_specific":{"malicious-packages-origins":[{"import_time":"2026-08-05T15:19:49.546084129Z","modified_time":"2026-08-05T14:41:52Z","sha256":"a8e34f125883bf487e46fede3b2094978e853711c0688c8712cc5628e929f0ad","source":"amazon-inspector","versions":["35.3.8"],"id":"IN-MAL-2026-015404"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/bnpl-blocks-independent-bnpl-separator/v/35.3.8"}],"affected":[{"package":{"name":"bnpl-blocks-independent-bnpl-separator","ecosystem":"npm","purl":"pkg:npm/bnpl-blocks-independent-bnpl-separator"},"versions":["35.3.8"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"tlsh":"eda1875a056670198b70dbe48b278416f56be663338086d4fb9ca9984f7713483b2efc","path":"_init.js","sha256":"74464173b3b8908a13c9bc32404787985868c091d4efee0c09c0ac7056710bf4"},{"path":"lib/telemetry.js","sha256":"11f27506025646e252a081be7c417cf9994a86f4a20450dd49f085cbeabcb6cd","tlsh":"6e835055566a242186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"}],"package_integrity":[{"hashes":{"sha1":"a318039bb7f0e9fe5622024ebe0482c68501086b","sha512_sri":"sha512-HxE7ZPPXGBoPGB9fZsaHjZ4xdHo7GAeF1P0HN/UlHgSqT2nHPBQMIPEpKT/h+T93gAv8eeQ+uyXg5y+huqh6ig=="},"filename":"bnpl-blocks-independent-bnpl-separator-35.3.8.tgz"}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bnpl-blocks-independent-bnpl-separator/MAL-2026-12969.json"}}],"schema_version":"1.8.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}