{"id":"MAL-2026-13001","summary":"Malicious code in bnpl-blocks-mobile-bnpl-picture-gallery (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (fab6b4486cfd526c741063bd79f43ac71b870f9dc859dd2057c35f1121166443)\nOn require(), _bootstrap.js selects a platform-specific asset path and downloads a binary from one of several Cloudflare Workers hostnames whose names are assembled at runtime by joining substring arrays (e.g. 'oob-w'+'orker.cf103-070'+'.workers.dev'), with a DNS-TXT covert-channel fallback under *.dl.wel1.ru that reassembles a base64-encoded payload from numbered TXT records if HTTPS retrieval fails. The fetched bytes are written to /tmp or %TEMP% under disguised names (e.g. 'dotnet_diag_*.exe', '.cache_*'), chmod 0755, and spawned detached via child_process (spawn('cmd'...) or spawn('/bin/sh',...)). The package advertises itself as a 'platform adapter' / 'picture gallery' — remote binary execution is not the stated purpose. A second, cover-story-labeled ('analytics-sdk') copy of the same dropper ships at lib/telemetry.js with parallel HTTPS+DNS discovery, base64 chunk assembly, chmod 0755, and spawn('/bin/sh',['-c', filePath + ' &']).\n","modified":"2026-08-05T15:51:36.533857347Z","published":"2026-08-05T14:38:08Z","database_specific":{"malicious-packages-origins":[{"modified_time":"2026-08-05T14:38:08Z","sha256":"fab6b4486cfd526c741063bd79f43ac71b870f9dc859dd2057c35f1121166443","source":"amazon-inspector","versions":["35.9.1"],"id":"IN-MAL-2026-015379","import_time":"2026-08-05T15:19:48.188599763Z"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/bnpl-blocks-mobile-bnpl-picture-gallery/v/35.9.1"}],"affected":[{"package":{"name":"bnpl-blocks-mobile-bnpl-picture-gallery","ecosystem":"npm","purl":"pkg:npm/bnpl-blocks-mobile-bnpl-picture-gallery"},"versions":["35.9.1"],"database_specific":{"cwes":[{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."}],"indicators":{"package_integrity":[{"hashes":{"sha1":"78db611b8359b6f05e8ab81b94bbbebf27eb236e","sha512_sri":"sha512-143tlAhn3C1NIXR9UDM6p01qtYy8DLxeJ/A1fDEL3AtsH5HQbwvVK5qUPpDieED4NgECFg3AJNUGC3MCm3Ur7Q=="},"filename":"bnpl-blocks-mobile-bnpl-picture-gallery-35.9.1.tgz"}],"evidence_files":[{"path":"_bootstrap.js","sha256":"0ddfb51cabc243d9cfed0657630c00eeaeba956c4135d15334f132f9610e9866","tlsh":"2db1966a126a70184bb0d7e0c61b5416f65af6633780d5d8f75ca5880ff712483b2efc"},{"tlsh":"41835056566a142186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc","path":"lib/telemetry.js","sha256":"695e84da1d02d71f3a6637628635ce83947bc5d0f544094f8853acfd8b19b8be"}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bnpl-blocks-mobile-bnpl-picture-gallery/MAL-2026-13001.json"}}],"schema_version":"1.8.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}