{"schema_version":"1.8.0","id":"MAL-2026-12891","published":"2026-08-05T14:54:16Z","modified":"2026-08-05T15:50:45.326284605Z","summary":"Malicious code in bnpl-blocks-atom-bnpl-reviews-counter (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (28f2136092f1d01017b4a4d573e4a22de7c4fc7d44b07d8e3a1f24ce57be6c65)\nOn require of this package, index.js loads _platform.js which runs at import time. It reconstructs a list of destination hosts by string-splitting fragments (assembling oob-worker.cf*.workers.dev endpoints and *.dl.wel1.ru fallbacks), selects an architecture-specific asset, fetches a native binary over HTTPS, writes it to /var/tmp or %TEMP% under a disguised name (.cache_<rand> on POSIX, dotnet_diag_<rand>.exe on Windows), chmods it 0755, and spawns it detached via /bin/sh -c \"<path> &\" or cmd /c start /b. If the HTTPS fetch fails, a covert DNS-TXT channel is used: a chunk count is read from c.<domain> TXT records and base64 payload fragments are reassembled from N.<domain> TXT records. An anti-repeat flag file at /tmp/.analytics_state suppresses repeat execution. No hash or signature verification is performed on the fetched binary, the destination hosts are not the package's publisher, the hostnames are obfuscated via string-splitting to defeat static inspection, and the package's advertised purpose (a BNPL reviews counter) has no legitimate need to fetch and execute a native binary at import time.\n","affected":[{"package":{"name":"bnpl-blocks-atom-bnpl-reviews-counter","ecosystem":"npm","purl":"pkg:npm/bnpl-blocks-atom-bnpl-reviews-counter"},"versions":["35.3.6"],"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":[{"path":"_platform.js","sha256":"100a60e1f98f503d1ac066943293f314155d8e28d7017a14f6d082330619e2c7","tlsh":"1ca1955b16a670198bb0dbe0cb175416f65bf66333808684fb9ca5981f7226443f2efc"}],"package_integrity":[{"filename":"bnpl-blocks-atom-bnpl-reviews-counter-35.3.6.tgz","hashes":{"sha1":"7ade1c5fd28d1a07aa9c18d02d522bf76f03b207","sha512_sri":"sha512-x2GITTsYz2VbmNqLsdUgdf0bLl33lNYT5m5n1gCLb3XPYsJ6up4R66CybQg/Z0EBE9pe/S9ur9NkDRwbqb4Rsw=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bnpl-blocks-atom-bnpl-reviews-counter/MAL-2026-12891.json"}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/bnpl-blocks-atom-bnpl-reviews-counter/v/35.3.6"}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-015489","import_time":"2026-08-05T15:19:54.051002791Z","modified_time":"2026-08-05T14:54:16Z","sha256":"28f2136092f1d01017b4a4d573e4a22de7c4fc7d44b07d8e3a1f24ce57be6c65","source":"amazon-inspector","versions":["35.3.6"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}