MAL-2026-12936
Dashboard / Malicious Package / MAL-2026-12936
MAL-2026-12936
Summary: Malicious code in bnpl-blocks-desktop-bnpl-picture-gallery (npm)
Details: Source: amazon-inspector (ea9e8a4f62e56d4797cc04c34f92cb55312f74de4980d98853210716f020ee76) On 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_<hex>.exe on Windows,.cache_<hex> 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.<domain> under *.dl.wel1.ru for a chunk count, iterates 0.<domain>..N-1.<domain>, 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.
Affected packages
Package
Name: bnpl-blocks-desktop-bnpl-picture-gallery
Purl: pkg:npm/bnpl-blocks-desktop-bnpl-picture-gallery
Affected ranges
Type: N/A
Events:
