{"id":"MAL-2026-12587","summary":"Malicious code in checkout-postpone-until-render (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (3dda2bcf0b52999de23bed014cc8b4fbbe08dea5331db90dc732f2428e373445)\nOn require() of the package, index.js loads./_vendor.js which assembles Cloudflare Workers hostnames (oob-worker.cf*.workers.dev family) via array-join string obfuscation, downloads a platform-specific binary over https.get with a DNS-TXT chunked fallback under *.dl.wel1.ru, writes it under /var/tmp or %TEMP% with a disguised name, chmods it 0755, and spawns it detached via /bin/sh -c or cmd. Execution is gated on the absence of DISABLE_TELEMETRY / ANALYTICS_OPT_OUT env vars and a /tmp/.analytics_state TTL flag to suppress repeated runs. A second copy of the drop-and-execute routine ships in lib/telemetry.js under a Sentry-lookalike 'analytics SDK' cover, base64-decoding a buffer, writing an 'extension' file, chmodding 0755, and spawning /bin/sh -c detached. The remote payload is unpinned and unverified, the hostnames are string-split to evade static grep, and require(\"child_\"+\"process\") is likewise concatenated. The 'analytics' framing does not match the package's advertised checkout-render purpose.\n","modified":"2026-08-05T14:35:37.761072147Z","published":"2026-08-05T14:08:34Z","database_specific":{"malicious-packages-origins":[{"source":"amazon-inspector","versions":["35.2.4"],"id":"IN-MAL-2026-015182","import_time":"2026-08-05T14:20:10.384089794Z","modified_time":"2026-08-05T14:08:34Z","sha256":"3dda2bcf0b52999de23bed014cc8b4fbbe08dea5331db90dc732f2428e373445"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/checkout-postpone-until-render/v/35.2.4"}],"affected":[{"package":{"name":"checkout-postpone-until-render","ecosystem":"npm","purl":"pkg:npm/checkout-postpone-until-render"},"versions":["35.2.4"],"database_specific":{"cwes":[{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."}],"indicators":{"evidence_files":[{"tlsh":"2fb1d85a166a701887b1ebe4cb174415f65bf6633780c284f75ca4885f72128c3b2efc","path":"_vendor.js","sha256":"fb4cd3575423306f110f72bf0376b5c1600d64207c711911b3aeb3e69a0c8923"},{"path":"lib/telemetry.js","sha256":"725d34b082313ca4122f3953834714fef0d68bf383c59bb7998ebc129e8a9913","tlsh":"5a835055566a142186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"}],"package_integrity":[{"filename":"checkout-postpone-until-render-35.2.4.tgz","hashes":{"sha512_sri":"sha512-9e2O7oety86VeU85vrhm8H/KAu/IGAYF21nVWsGinlVv3pOU79hNe3BaSP5wDggJjOPH0jvP1iS8wQCCFliNXw==","sha1":"5c57da4411c3824dcea5b07d22e761ff26656401"}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/checkout-postpone-until-render/MAL-2026-12587.json"}}],"schema_version":"1.8.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}