{"schema_version":"1.8.0","id":"MAL-2026-12516","published":"2026-08-05T14:18:43Z","modified":"2026-08-05T14:35:15.234524749Z","summary":"Malicious code in bpm-foundation-testing (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (731f1d13e5958a2b7954d0c472f56bae0663ebc6e0d0e1f2e7c080b70f124c73)\nindex.js unconditionally requires./_platform on load. _platform.js selects a per-OS payload path, fetches bytes from one of three string-concatenation-obfuscated *.workers.dev hosts (oob-worker.cf101-adf.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf100-416.workers.dev), with a DNS TXT-record fallback channel that reassembles a base64 payload from chunked subdomain lookups against sdk.dl.wel1.ru / ext.dl.wel1.ru / pkg.dl.wel1.ru / net.dl.wel1.ru. The fetched bytes are written to /var/tmp or the Windows TEMP directory with disguising filenames (dotnet_diag_<hex>.exe,.cache_<hex>), chmod 0755'd, and executed detached via `cp.spawn(\"/bin/sh\", [\"-c\", fp + \" &\"], { detached: true }).unref()` or the cmd.exe equivalent. Destination hosts are assembled from split string fragments (e.g. `[\"oob-worker.cf101-adf.w\",\"orkers.de\",\"v\"].join(\"\")`) and `child_process` is likewise imported via `require(\"child_\" + \"process\")` to evade static analysis. A parallel dropper implementation with the same fetch/chmod/spawn shape is bundled in lib/telemetry.js under a `metrics.node` cover story. No hash or signature verification of fetched bytes; payload host is not publisher-owned.\n","affected":[{"package":{"name":"bpm-foundation-testing","ecosystem":"npm","purl":"pkg:npm/bpm-foundation-testing"},"versions":["35.4.3"],"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":"_platform.js","sha256":"b09daa7cd8f849607bab2c7c559c74f9bdd586ccb205d2a83193d60fffa8d638","tlsh":"f3a1a79a126671188bb097e597174416f66bf6633380c2c8f79ca8941fb312483b2efc"},{"path":"lib/telemetry.js","sha256":"1259da862b73744f88d49da4209d3794377013f3b9f0b5d092f25daacda14eeb","tlsh":"e6835056566a142186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"}],"package_integrity":[{"filename":"bpm-foundation-testing-35.4.3.tgz","hashes":{"sha1":"d3286b94a416088fb97c87461916fabb467ca9cd","sha512_sri":"sha512-yDWdoqEFCPrZDrydLM2E6IJWZ2HhjiyehQ8oweaFLSPYYAZz9mLur4DGH/OzgYus3dw9x11pNoT93bi7OfULhw=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bpm-foundation-testing/MAL-2026-12516.json"}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/bpm-foundation-testing/v/35.4.3"}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-015250","import_time":"2026-08-05T14:20:16.682605177Z","modified_time":"2026-08-05T14:18:43Z","sha256":"731f1d13e5958a2b7954d0c472f56bae0663ebc6e0d0e1f2e7c080b70f124c73","source":"amazon-inspector","versions":["35.4.3"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}