-= Per source details. Do not edit below this line.=-
On require() of this package, index.js loads adapter.js which invokes bootstrap() at module load. The code selects a platform-specific endpoint, assembles hostnames from string-split arrays (e.g. ["oob-worker.cf100-","416.wo","rkers.d","ev"].join("")) to resolve to anonymous Cloudflare Workers subdomains (oob-worker.cf100-416.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf102-baf.workers.dev), fetches an opaque binary via https.get, writes it to /var/tmp or %TEMP% under disguised names (.cache<rnd> on Unix, dotnetdiag<rnd>.exe on Windows to masquerade as dotnet diagnostics), chmods 0755, and spawns it detached with stdio ignored via cp.spawn("/bin/sh",["-c", fp+" &"], {detached:true, stdio:"ignore"}).unref(). A fallback covert channel reassembles the payload from base64-encoded chunks stored in DNS TXT records at sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, and net.dl.wel1.ru (reading a chunk count from c.<domain> then concatenating <n>.<domain> TXT responses) to bypass HTTP egress filtering. No hash or signature verification is performed on the fetched bytes. Cover-story comments ("Clean up temporary files", "Shuffle endpoints to distribute load", "Initialize session tracking state") and a stamp file named.analyticsstate present the behavior as telemetry; opt-out environment variables DISABLETELEMETRY/ANALYTICSOPTOUT/DONOTTRACK short-circuit the dropper, functioning as an evasion switch. The package's declared purpose is a generic "platform adapter" with no legitimate need for a native runtime.
{
"malicious-packages-origins": [
{
"modified_time": "2026-08-05T14:41:17Z",
"id": "IN-MAL-2026-015400",
"import_time": "2026-08-05T15:19:49.339080421Z",
"versions": [
"35.5.3"
],
"source": "amazon-inspector",
"sha256": "e6a2921266e52f201547a9cd08fabd37f291c1db3c02e22c6b546206dfb9c20d"
}
]
}[
{
"cweId": "CWE-506",
"name": "Embedded Malicious Code",
"description": "The product contains code that appears to be malicious in nature."
}
]
{
"package_integrity": [
{
"filename": "bnpl-blocks-mobile-bnpl-faq-35.5.3.tgz",
"hashes": {
"sha512_sri": "sha512-0VKprjyNmcbarXfWzFPBO8zPZ6rntV+nt8SwGr1KM/0L5NAJM963IPxJa4M5s5nlStYsipL9nYda//RV8u9tig==",
"sha1": "94f314be8f293a7c6b8d8a4ddde51de15b5508d6"
}
}
],
"evidence_files": [
{
"path": "_adapter.js",
"tlsh": "31a1a76a05a670194bb0dbe4c6175416f55ae66337c0c298f79c69dc1fb212482f3eec",
"sha256": "ada4a3788edcd450944f2536f456b4aa397acd8c570c4d9021db08f09705361c"
}
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/bnpl-blocks-mobile-bnpl-faq/MAL-2026-12987.json"