Malicious code in cloudflare_module (npm)
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (f3a545e1e930894c3320e68c2aee17dd2cec7f20ed03b2e882905056d0eee242) Package `cloudflare_module@99.0.1` is a dependency-confusion lure targeting the `cloudflare_*` namespace. `package.json` declares `scripts.postinstall: "node beacon.cjs"`, and `beacon.cjs` POSTs a JSON payload containing `os.hostname()`, the install path (`__dirname`), `process.cwd()`, and `process.version` to the hardcoded bare-IP endpoint `http://185.158.107.175:8787/_ah/dc` over plain HTTP. The package `main` (`index.js`) additionally calls `require('./beacon.cjs').fire()` at top level inside a try/catch, so the same host-identifier POST also fires whenever a downstream bundler or application `require()`s the package. The default export is a Proxy that returns a no-op for every property access, allowing bundlers that resolve an internal `cloudflare_module` name to complete the build cleanly so the beacon callback fires without producing errors. The package is published at version `99.0.1` with a generic "Compatibility shim." description, consistent with version-bumping to beat an internal registry during resolution. The README self-labels the package as an "authorized dependency-confusion test," but the beacon targets any machine that resolves the name — the installer never consents to the exfiltration — and the destination is an unattributed bare-IP collector, not infrastructure of the targeted namespace.
- Products
- cloudflare_module
- Affected versions
- 1.0.0, 1.0.1, 3.0.0, 99.0.1
- Fixed versions
- Not specified
- CVEs
- Not specified
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 30 Oct 2026, 05:16 UTC · Revision 1
Source evidence
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (f3a545e1e930894c3320e68c2aee17dd2cec7f20ed03b2e882905056d0eee242) Package `cloudflare_module@99.0.1` is a dependency-confusion lure targeting the `cloudflare_*` namespace. `package.json` declares `scripts.postinstall: "node beacon.cjs"`, and `beacon.cjs` POSTs a JSON payload containing `os.hostname()`, the install path (`__dirname`), `process.cwd()`, and `process.version` to the hardcoded bare-IP endpoint `http://185.158.107.175:8787/_ah/dc` over plain HTTP. The package `main` (`index.js`) additionally calls `require('./beacon.cjs').fire()` at top level inside a try/catch, so the same host-identifier POST also fires whenever a downstream bundler or application `require()`s the package. The default export is a Proxy that returns a no-op for every property access, allowing bundlers that resolve an internal `cloudflare_module` name to complete the build cleanly so the beacon callback fires without producing errors. The package is published at version `99.0.1` with a generic "Compatibility shim." description, consistent with version-bumping to beat an internal registry during resolution. The README self-labels the package as an "authorized dependency-confusion test," but the beacon targets any machine that resolves the name — the installer never consents to the exfiltration — and the destination is an unattributed bare-IP collector, not infrastructure of the targeted namespace.
osv:MAL-2026-17768
cloudflare_module
Fixed versions: Not specified
Complete source record
{
"id": "f0a41d06f8768df209df327eac02a3432040f2336e271dbdd3c51262feaacf24",
"url": "https://osv.dev/vulnerability/MAL-2026-17768",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Malicious code in cloudflare_module (npm)",
"summary": "--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (f3a545e1e930894c3320e68c2aee17dd2cec7f20ed03b2e882905056d0eee242) Package `cloudflare_module@99.0.1` is a dependency-confusion lure targeting the `cloudflare_*` namespace. `package.json` declares `scripts.postinstall: \"node beacon.cjs\"`, and `beacon.cjs` POSTs a JSON payload containing `os.hostname()`, the install path (`__dirname`), `process.cwd()`, and `process.version` to the hardcoded bare-IP endpoint `http://185.158.107.175:8787/_ah/dc` over plain HTTP. The package `main` (`index.js`) additionally calls `require('./beacon.cjs').fire()` at top level inside a try/catch, so the same host-identifier POST also fires whenever a downstream bundler or application `require()`s the package. The default export is a Proxy that returns a no-op for every property access, allowing bundlers that resolve an internal `cloudflare_module` name to complete the build cleanly so the beacon callback fires without producing errors. The package is published at version `99.0.1` with a generic \"Compatibility shim.\" description, consistent with version-bumping to beat an internal registry during resolution. The README self-labels the package as an \"authorized dependency-confusion test,\" but the beacon targets any machine that resolves the name — the installer never consents to the exfiltration — and the destination is an unattributed bare-IP collector, not infrastructure of the targeted namespace.",
"evidence": "osv:MAL-2026-17768",
"products": [
{
"name": {
"value": "cloudflare_module",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "3.0.0",
"evidence": "/affected/0/versions"
},
{
"value": "1.0.1",
"evidence": "/affected/0/versions"
},
{
"value": "1.0.0",
"evidence": "/affected/0/versions"
},
{
"value": "99.0.1",
"evidence": "/affected/0/versions"
}
]
}
],
"severity": "unknown",
"structured": {
"id": "MAL-2026-17768",
"aliases": [
"MAL-2026-17768"
],
"affected": [
{
"package": {
"name": "cloudflare_module",
"purl": "pkg:npm/cloudflare_module",
"ecosystem": "npm"
},
"versions": [
"3.0.0",
"1.0.1",
"1.0.0",
"99.0.1"
],
"database_specific": {
"cwes": [
{
"name": "Embedded Malicious Code",
"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",
"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."
}
],
"source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/cloudflare_module/MAL-2026-17768.json",
"indicators": {
"evidence_files": [
{
"path": "beacon.cjs",
"tlsh": "813161eba8f0e048aaaa7098c54f0409b17af4078501af50f95d82915f6153c33fa8dc",
"sha256": "80779491720d41c53b5ed4cfbcbc70e9ebc144aaea61713d622eaa7a266c951b"
},
{
"path": "index.js",
"tlsh": "2201d0d7225661b10b5221a4978f43c4a3b99d74027941d0d84a9226365108c463b8ee",
"sha256": "a86a4da763bbb34c16f361abe7aab66d5df591b66867ac8160041f932159b08d"
}
],
"package_integrity": [
{
"hashes": {
"sha1": "11cb1eee1a57a04cd5f4c574706c16f470039730",
"sha512_sri": "sha512-+THmk0xaejcBalXPdQdXXIEXc4+a0hzFXshBDHPTkw72QTasmBzosaRPQEM9L4/cjIgyIwZcVjBFdOhEzEf0OQ=="
},
"filename": "cloudflare_module-3.0.0.tgz"
}
]
}
}
}
],
"modified": "2026-10-11T17:30:47.987498910Z",
"provider": "osv",
"references": [
"https://www.npmjs.com/package/cloudflare_module/v/3.0.0",
"https://www.npmjs.com/package/cloudflare_module/v/1.0.1",
"https://www.npmjs.com/package/cloudflare_module/v/1.0.0",
"https://www.npmjs.com/package/cloudflare_module/v/99.0.1"
],
"provider_metadata": {
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-021410",
"sha256": "0aeadec01dbc6c39254740f8f4557d53f8d7ab94136a4695525a70cd3f80d95d",
"source": "amazon-inspector",
"versions": [
"3.0.0"
],
"import_time": "2026-10-11T14:18:03.313936647Z",
"modified_time": "2026-10-11T13:55:13Z"
},
{
"id": "IN-MAL-2026-021387",
"sha256": "14316e66f8d8eeb53b5fd4850537ac5398947feaf88f3837e39bfa587f60a0fb",
"source": "amazon-inspector",
"versions": [
"1.0.1"
],
"import_time": "2026-10-11T14:18:01.469925982Z",
"modified_time": "2026-10-11T13:51:50Z"
},
{
"id": "IN-MAL-2026-021439",
"sha256": "351579deaec7e5f856dfe103fbc8b7979b0f746e8e058bc3c1d35a00556bedf0",
"source": "amazon-inspector",
"versions": [
"1.0.0"
],
"import_time": "2026-10-11T14:18:06.102897694Z",
"modified_time": "2026-10-11T13:59:51Z"
},
{
"id": "IN-MAL-2026-021448",
"sha256": "f3a545e1e930894c3320e68c2aee17dd2cec7f20ed03b2e882905056d0eee242",
"source": "amazon-inspector",
"versions": [
"99.0.1"
],
"import_time": "2026-10-11T17:15:51.556858866Z",
"modified_time": "2026-10-11T16:53:13Z"
}
]
}
},
"related_cves": [],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 296386,
"published_at": "2026-10-11T13:51:50+00:00"
}