{"schema_version":"1.8.0","id":"MAL-2026-12661","published":"2026-08-05T13:57:02Z","modified":"2026-08-05T14:36:13.100503895Z","summary":"Malicious code in constructor-blocks-landings (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (28cdac4c3410baaaa9054b53e7d5ed9260e8322d3164fc5e1670c2ac15efa98b)\nOn require() of the package's main entrypoint, index.js loads setup.js which selects an OS/architecture-specific asset and downloads a binary from a rotating list of hostnames assembled at runtime via string-splitting (e.g. [\"oob-worker.cf101-adf.wo\",\"rkers.de\",\"v\"].join(\"\")), with a DNS-TXT fallback under dl.wel1.ru. The downloaded bytes are written to a temp directory under a disguised name (dotnet_diag_<rand>.exe on Windows,.cache_<rand> on Unix), chmodded 0755, and spawned detached via cmd.exe or /bin/sh -c \"<path> &\" with stdio ignored. Node built-ins are accessed through computed property names (os[k], fs['chmod'+'Sync'], require('child_'+'process')) to defeat static analysis. A secondary copy of the same primitives is bundled in lib/telemetry.js under a fake analytics/SDK shape. Hostname reassembly, disguised staged filenames, detached background execution, and a DNS covert channel are attacker-dropper shape, not telemetry.\n","affected":[{"package":{"name":"constructor-blocks-landings","ecosystem":"npm","purl":"pkg:npm/constructor-blocks-landings"},"versions":["35.5.7"],"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":"setup.js","sha256":"fe1ff6e316786d73d7d0fbbe6973a65dbd0dd288dee48f4b47aabc2c5b1a08c2","tlsh":"dea1979a16a9701c4bb0ebf4c71b9825f65af66337818284fb5c69845f731248372efc"},{"path":"lib/telemetry.js","sha256":"8f1c6a6cba3b220b731d5808bc04168cded4b783871cd2054e58b0367939810e","tlsh":"c8835055566a242186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"}],"package_integrity":[{"filename":"constructor-blocks-landings-35.5.7.tgz","hashes":{"sha1":"99abcfa744086f13187c894e25c4cc19a6d55d07","sha512_sri":"sha512-DI8e5IbIOz8A8ul5rrAB8xr59I0O6dDBz/C0DBABEuV6A8mw29e3Hnx3a3dljWoU6ll5OKdCSfOFrZ+0d5vRLA=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/constructor-blocks-landings/MAL-2026-12661.json"}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/constructor-blocks-landings/v/35.5.7"}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-015105","import_time":"2026-08-05T14:20:02.52469727Z","modified_time":"2026-08-05T13:57:02Z","sha256":"28cdac4c3410baaaa9054b53e7d5ed9260e8322d3164fc5e1670c2ac15efa98b","source":"amazon-inspector","versions":["35.5.7"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}