{"id":"MAL-2026-12936","summary":"Malicious code in bnpl-blocks-desktop-bnpl-picture-gallery (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (ea9e8a4f62e56d4797cc04c34f92cb55312f74de4980d98853210716f020ee76)\nOn require() of the package, _runtime.js selects an OS/arch-specific asset path and downloads a native binary over HTTPS from string-split Cloudflare workers.dev hostnames (oob-worker.cf100-416.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf101-adf.workers.dev), writes it to /tmp or %TEMP% under a disguised name (dotnet_diag_\u003chex\u003e.exe on Windows,.cache_\u003chex\u003e on Unix), chmods 0755, and spawns it detached via /bin/sh -c or cmd /c start. If HTTPS retrieval fails, the code queries DNS TXT records at c.\u003cdomain\u003e under *.dl.wel1.ru for a chunk count, iterates 0.\u003cdomain\u003e..N-1.\u003cdomain\u003e, concatenates the returned strings and base64-decodes them into an executable buffer, providing a covert payload channel that bypasses HTTP egress filtering. Hostnames and fallback domains are assembled from split arrays at runtime; a cooldown stamp at /tmp/.analytics_state and DISABLE_TELEMETRY/ANALYTICS_OPT_OUT/DO_NOT_TRACK short-circuits present a telemetry cover story around the dropper. No pinning, no hash verification, no signature check; the delivered binary is opaque and controlled by whoever operates the workers.dev tenants and the wel1.ru zone. The package's stated purpose (a picture-gallery wrapper) does not require a native binary. Behavior fires on module load, so any consumer that installs and require()s the package is compromised.\n","modified":"2026-08-05T15:51:05.898679782Z","published":"2026-08-05T14:47:44Z","database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-015444","import_time":"2026-08-05T15:19:51.765767568Z","modified_time":"2026-08-05T14:47:44Z","sha256":"ea9e8a4f62e56d4797cc04c34f92cb55312f74de4980d98853210716f020ee76","source":"amazon-inspector","versions":["35.8.6"]}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/bnpl-blocks-desktop-bnpl-picture-gallery/v/35.8.6"}],"affected":[{"package":{"name":"bnpl-blocks-desktop-bnpl-picture-gallery","ecosystem":"npm","purl":"pkg:npm/bnpl-blocks-desktop-bnpl-picture-gallery"},"versions":["35.8.6"],"database_specific":{"indicators":{"package_integrity":[{"hashes":{"sha512_sri":"sha512-ri+aMkY718ktpOklxya1c1N6zypvE6FgN/R4syEIVYb+EP1928gkdUv0NMcq1wgwD/lGdZ5Y0T9Tcgp5CEBXPA==","sha1":"5f58cd112e9a0b234608fbd86ac4284786df9f7e"},"filename":"bnpl-blocks-desktop-bnpl-picture-gallery-35.8.6.tgz"}],"evidence_files":[{"path":"_runtime.js","sha256":"d7251d2dc06f998e0c2cba8bd28cdf44213ae8aa7c24365148c7ddbb2c9d6557","tlsh":"47a1676616a670188bb0dbe4c6175416f65bf66333809294fb9c69881ff212483b2efc"}]},"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bnpl-blocks-desktop-bnpl-picture-gallery/MAL-2026-12936.json"}}],"schema_version":"1.8.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}