ai-workshop-maa15-radio is a dependency-confusion package: it takes a name that looks like an internal project, uses an inflated version (100.0.0) so it outranks private-registry versions, and runs node setup.js || true as a preinstall script on npm install. setup.js sends the hostname, username, working directory, OS, architecture, Node.js version and configured npm registry, with a per-package tracking token, in an HTTPS POST to https://s85r5k14qk.execute-api.us-east-1.amazonaws.com/prod/hook. The npm account amel10 published ai-workshop-maa15-radio and 9 similar packages within two minutes on 2026-09-30, all with the same setup.js.
-= Per source details. Do not edit below this line.=-
Package advertises itself as a trivial string helper (reverseWords) but its declared preinstall script (node setup.js) opens an HTTPS POST to a hardcoded endpoint at s85r5k14qk.execute-api.us-east-1.amazonaws.com/prod/hook on every npm install. The request body contains os.hostname(), os.userInfo().username, process.cwd(), os.platform(), os.arch(), process.version, and npm_config_registry, along with a hardcoded per-package tracking token. The version number (100.0.0) and the collection of npm_config_registry are consistent with a dependency-confusion reconnaissance beacon targeting internal package resolution. Installer host and user identifiers are transmitted to an attacker-controlled endpoint without consent, fired automatically at install time.
{
"iocs": {
"domains": [
"s85r5k14qk.execute-api.us-east-1.amazonaws.com"
],
"files": [
{
"digests": {
"sha256": "f4bfb507dfa6ce9fe482ab5a3b110d7dce74cd6f658d769a2e9767c878ea0143"
},
"note": "preinstall: node setup.js || true",
"paths": [
"package.json"
],
"source": "PACKAGE_ARCHIVE"
},
{
"digests": {
"sha256": "e61bf6a990101c6b01da29ff68b12542604bb0977c1e863f028dddde0a78ae03"
},
"note": "Executed by the preinstall script.",
"paths": [
"setup.js"
],
"source": "PACKAGE_ARCHIVE"
}
],
"urls": [
"https://s85r5k14qk.execute-api.us-east-1.amazonaws.com/prod/hook"
]
},
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-020899",
"import_time": "2026-10-04T23:40:39.782269967Z",
"modified_time": "2026-10-04T23:16:32Z",
"sha256": "694d978a9ca05c713784f60dbdc3e6bb41f7b05393e4d7811bd0c2abad93cf36",
"source": "amazon-inspector",
"versions": [
"100.0.0"
]
}
]
}[
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
},
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
}
]
{
"evidence_files": [
{
"path": "setup.js",
"sha256": "e61bf6a990101c6b01da29ff68b12542604bb0977c1e863f028dddde0a78ae03",
"tlsh": "9501f4f492e0d5b53abc11d4f260b847d377e115354765d0c8e880517f89af809328f2"
}
],
"package_integrity": [
{
"filename": "ai-workshop-maa15-radio-100.0.0.tgz",
"hashes": {
"sha1": "b444235dcb6b8663654e25343bc9395adb5b88ae",
"sha512_sri": "sha512-UxnTq9kGc7BNpXNj+t7U+vXzZbDaRLYWvWkaZanF0ZwkjQYbouBMdrZv3UM7N26pLl6m9QVkBmqcgDRkRWpU7w=="
}
}
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/ai-workshop-maa15-radio/MAL-2026-17427.json"