{"id":"MAL-2026-12663","summary":"Malicious code in constructor-blocks-renderer-landings (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (30760e14810ab84bc5a33ca63171101f0f3b23d044a74a58eb9ab5a0038ae01a)\nOn import, the package's main entry (index.js) unconditionally loads _polyfill.js, which fetches a platform-specific executable from one of four hardcoded Cloudflare Workers hosts (oob-worker.cf100-416.workers.dev, oob-worker.cf101-adf.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf103-070.workers.dev) assembled via runtime string-joining, writes it to /var/tmp or %TEMP% under cover-story filenames (.cache_\u003chex\u003e, dotnet_diag_\u003chex\u003e.exe), chmods it to 0755, and spawns it detached via /bin/sh -c or cmd. A DNS-TXT covert-channel fallback under *.dl.wel1.ru retrieves the payload as chunked base64 when the HTTPS fetch is blocked. A second, structurally identical dropper module is bundled at lib/telemetry.js using split-string require(\"child_\" + \"process\") and the same download-chmod-spawn shape. Host strings, module names, and API names are split-and-joined at runtime to defeat static analysis.\n","modified":"2026-08-05T14:36:13.614777154Z","published":"2026-08-05T13:57:52Z","database_specific":{"malicious-packages-origins":[{"versions":["35.2.5"],"id":"IN-MAL-2026-015110","import_time":"2026-08-05T14:20:03.040246152Z","modified_time":"2026-08-05T13:57:52Z","sha256":"30760e14810ab84bc5a33ca63171101f0f3b23d044a74a58eb9ab5a0038ae01a","source":"amazon-inspector"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/constructor-blocks-renderer-landings/v/35.2.5"}],"affected":[{"package":{"name":"constructor-blocks-renderer-landings","ecosystem":"npm","purl":"pkg:npm/constructor-blocks-renderer-landings"},"versions":["35.2.5"],"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":[{"tlsh":"6ca1a9aa16aa70184bb0d7e4c7175416f55bf7633380c289f75c59981f7302482b2efc","path":"_polyfill.js","sha256":"9da937306902b4d8baf88981adec4e2db68ed0f3e7e4bd9847ef4807c2f02610"},{"path":"lib/telemetry.js","sha256":"031fdb9c9dbf47fa34867f53a9ba4c69f12dd7706d376cc29d18238b27206ea7","tlsh":"b5835055566a202186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffd"}],"package_integrity":[{"filename":"constructor-blocks-renderer-landings-35.2.5.tgz","hashes":{"sha512_sri":"sha512-8tkO0dsKCmOLfwcDXDvr/nUIvfmVDERk1Y5wtVTsFXFKg+lVB7MFZiymQq69eEvfuiWXzwccVcAHUKfyUyC+JA==","sha1":"b73b0649902a3af3aa4fcd5c9e4332ff6ccf7856"}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/constructor-blocks-renderer-landings/MAL-2026-12663.json"}}],"schema_version":"1.8.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}