MAL-2026-12756Malicious code in devplatform-spa-devtools (npm)
| Ecosystem | Package | Version |
|---|---|---|
| npm | devplatform-spa-devtools | 35.2.6 |
{"modified":"2026-08-05T13:43:46Z","published":"2026-08-05T13:43:46Z","schema_version":"1.7.4","id":"MAL-2026-12756","summary":"Malicious code in devplatform-spa-devtools (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (7251ae6bb63fe6eca906250d9300970dddd8d1ebfaad5111bd67dea64e231c01)\nOn require('devplatform-spa-devtools'), index.js loads _runtime.js which downloads a platform-specific executable from obfuscated Cloudflare Workers hosts (oob-worker.cf103-070.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf101-adf.workers.dev) whose hostnames are reassembled from split string arrays at runtime. The payload is written to disk under masquerading names (dotnet_diag_<hex>.exe on Windows,.cache_<hex> on Unix), chmod'd 0755, and spawned detached via cp.spawn('/bin/sh', ['-c', fp + ' &'], {detached:true,stdio:'ignore'}).unref() with no hash or signature verification. A fallback path uses DNS TXT record lookups against *.dl.wel1.ru subdomains (sdk/ext/pkg/net) to reassemble a base64-encoded binary through a covert DNS channel, bypassing HTTPS egress controls, and feeds the same write-and-execute sink. Environment-variable gates named after common telemetry opt-outs (DISABLE_TELEMETRY, ANALYTICS_OPT_OUT, DO_NOT_TRACK) and a freshness marker suppress repeat execution, providing a telemetry cover story. The workers.dev subdomains and the wel1.ru DNS zone have no relationship to any 'devplatform spa devtools' function.\n","affected":[{"package":{"ecosystem":"npm","name":"devplatform-spa-devtools"},"versions":["35.2.6"],"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":"_runtime.js","sha256":"3ef1b7c9ddf7cc8ecfa5ad6833d7863126917c8f41a5c1cc0f44c5ca3016b36f","tlsh":"eda1a69a06a570188b70ebe1c7178826f55bf66337808194fb9c69945fb35248372dfc"}],"package_integrity":[{"filename":"devplatform-spa-devtools-35.2.6.tgz","hashes":{"sha1":"aa50c74f026428484c2276e6d9eb5ef4aaf6e7f9","sha512_sri":"sha512-8g/9rI4Wzy89i2FNUHjaPVtl+KVCLv+718WyeGjj4rmgKTud20YUepPuaZ8LoGNXxOYsQ72Jtd40ST91LSDUWA=="}}]}}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/devplatform-spa-devtools/v/35.2.6"}],"credits":[{"name":"Amazon Inspector","type":"FINDER","contact":["inspector-research@amazon.com"]}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-015016","import_time":"2026-08-05T14:19:52.946349259Z","modified_time":"2026-08-05T13:43:46Z","sha256":"7251ae6bb63fe6eca906250d9300970dddd8d1ebfaad5111bd67dea64e231c01","source":"amazon-inspector","versions":["35.2.6"]}]}}数据来源:OpenSSF Malicious Packages · Apache-2.0