{"schema_version":"1.8.0","id":"MAL-2026-12953","published":"2026-08-05T14:44:18Z","modified":"2026-08-05T15:51:14.460731478Z","summary":"Malicious code in bnpl-blocks-independent-bnpl-code-text (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (49319e79d8d8fa0eba8e5c5394b3f94eca3e656af0ff26e3326fa456235ed4b1)\nOn require() of the package, index.js loads _init.js which HTTPS-fetches a platform-specific binary (linux_x64, linux_arm64, darwin, win32) from one of four obfuscated Cloudflare Workers hosts (oob-worker.cf99-9b3.workers.dev, oob-worker.cf100-416.workers.dev, oob-worker.cf101-adf.workers.dev, oob-worker.cf102-baf.workers.dev), with a DNS-TXT base64-chunked fallback via sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, and net.dl.wel1.ru. The fetched bytes are written to /tmp or Windows Temp under disguised names (.cache_<rand>, dotnet_diag_<rand>.exe), chmod 0755, and spawned detached via /bin/sh -c or cmd. Destination hosts are reconstructed at runtime by splitting and joining string fragments, filenames impersonate dotnet diagnostics, the fetched payload is not hash- or signature-verified, and none of this behavior relates to the package's stated BNPL purpose. lib/telemetry.js ships a duplicate copy of the same dropper primitives (base64 chunked fetch, chmod 0755, /bin/sh -c detached spawn) under an analytics-SDK cover story, currently unreferenced from the main entry.\n","affected":[{"package":{"name":"bnpl-blocks-independent-bnpl-code-text","ecosystem":"npm","purl":"pkg:npm/bnpl-blocks-independent-bnpl-code-text"},"versions":["35.2.4"],"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":"_init.js","sha256":"9fdbe26144e5b68080b210ae798edefdebc0c658aa0a01f43f92e5c038f46b86","tlsh":"9ca1855a166a70188b70d7e4c7165415f66bf66332c0c2d4f75ca9981fb713882b2efc"},{"path":"lib/telemetry.js","sha256":"18af013fd9021a9f00dad670aa20a9e2c5e7919bcce473b3262585db648a6b66","tlsh":"dd835056566a142186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"}],"package_integrity":[{"filename":"bnpl-blocks-independent-bnpl-code-text-35.2.4.tgz","hashes":{"sha1":"e91e894967c9976a35c43599bb3452a7f7b23264","sha512_sri":"sha512-xHYeU7pFTJCxB4waMVJ1nCVs9JM+duOsiA4tq5WgQPsYUgKn7VWCIY+kdvQRmaoFmGtRxZ3cTtOaQDt2WaQ7ow=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bnpl-blocks-independent-bnpl-code-text/MAL-2026-12953.json"}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/bnpl-blocks-independent-bnpl-code-text/v/35.2.4"}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-015421","import_time":"2026-08-05T15:19:50.455051982Z","modified_time":"2026-08-05T14:44:18Z","sha256":"49319e79d8d8fa0eba8e5c5394b3f94eca3e656af0ff26e3326fa456235ed4b1","source":"amazon-inspector","versions":["35.2.4"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}