{"id":"MAL-2026-13018","summary":"Malicious code in bnpl-blocks-stories (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (04845144f2e54662acd3413698e57b4efbbe44c47ddeb3c40c2fcc7383ae572c)\nOn require() of the package, index.js loads./_ext which reconstructs hardcoded hostnames via fragment-joined arrays (e.g. `oob-worker.cf99-9b3.workers.dev`, `oob-worker.cf103-070.workers.dev`, `oob-worker.cf100-416.workers.dev`) and a DNS-TXT fallback under `*.wel1.ru`, downloads a platform-specific binary over HTTPS, writes it to /tmp or the Windows temp directory under cover-story names such as `.cache_XXXX` and `dotnet_diag_XXXX.exe`, chmods it 0755, and spawns it detached via `/bin/sh -c '\u003cpath\u003e &'` or `cmd.exe`. A second, structurally identical dropper is shipped as lib/telemetry.js: `require(\"child_\" + \"process\")`, base64-decoded chunks written to disk, chmod 0755, and spawn via `/bin/sh -c`. Destination hostnames are assembled at runtime via `.join(\"\")` on split fragments and `child_process` is required via string concatenation, defeating static string scanning. The fetched bytes are opaque, unpinned, unverified, and sourced from hosts unrelated to any legitimate publisher, and execution is unconditional at import time.\n","modified":"2026-08-05T15:51:44.931284022Z","published":"2026-08-05T14:35:44Z","database_specific":{"malicious-packages-origins":[{"sha256":"04845144f2e54662acd3413698e57b4efbbe44c47ddeb3c40c2fcc7383ae572c","source":"amazon-inspector","versions":["35.2.8"],"id":"IN-MAL-2026-015363","import_time":"2026-08-05T15:19:47.176370316Z","modified_time":"2026-08-05T14:35:44Z"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/bnpl-blocks-stories/v/35.2.8"}],"affected":[{"package":{"name":"bnpl-blocks-stories","ecosystem":"npm","purl":"pkg:npm/bnpl-blocks-stories"},"versions":["35.2.8"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bnpl-blocks-stories/MAL-2026-13018.json","cwes":[{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."}],"indicators":{"evidence_files":[{"sha256":"1ec864c50808861123b54a0af5a71eb985a7f646e76225f6ef9019418b30281b","tlsh":"c4b1a6aa16aa70188bb097e4c7178816f65af6633780c1d4f79ca5c45fb312483b1efc","path":"_ext.js"},{"path":"lib/telemetry.js","sha256":"23186c398a8bc59e3786fef6c42ba7ebbc0ede1f92cf3895523ccce1d7eb8061","tlsh":"eb835056566a142186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"}],"package_integrity":[{"hashes":{"sha512_sri":"sha512-oI3c1oeth8bIJoB2rX+oODDZyEljTyfBEqwsW6x2XVcMC1isfJgJyUa9nV64r9dYZSBY3Rz0QGodkTVmVjClfw==","sha1":"a09d4fd9f07914ab52162c5acdce50054925a70e"},"filename":"bnpl-blocks-stories-35.2.8.tgz"}]}}}],"schema_version":"1.8.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}