mal-2026-16478

ossf_malicious_packages
Description

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (f94b74862f327effaa43c1d01c4fd769626f73214d0706b80fef8b8a395cc3e8) On `npm install`, the declared postinstall hook runs `node index.js`, which reads `os.hostname()` and a timestamp, base64-encodes the JSON payload, and issues an HTTPS GET to `https://estimator-nemeses-unwatched.ngrok-free.dev/canary?d=<base64>`. The destination is a hardcoded ngrok tunnel unrelated to any registry or vendor infrastructure, and the beacon fires automatically without any caller action or opt-in. The package's own metadata describes it as a `Dependency Confusion to RCE` proof-of-concept, and the install-time callback carries the installer's internal hostname to an external third party.

Timeline
Published
unknown
Last Modified
unknown
CVSS Details

CVSS details not available.

Affected Products

No product information available.

Weaknesses (CWE)
References
Linked Vulnerabilities

No linked vulnerabilities found.

{
  "affected": [
    {
      "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": "index.js",
              "sha256": "6ff2d04134b8ce45ad5086c9818ff39def86396d581dbef1542a7a957209406d",
              "tlsh": "9ce0c0f022e0d1a01d3037c0c252ac1fd16bf16538a552a1b7ae01d4ca4243299f3e9c"
            }
          ],
          "package_integrity": [
            {
              "filename": "event-hunter-1.0.0.tgz",
              "hashes": {
                "sha1": "83ca86d9e43cf1dc8bcdad3be7dce43ec7dcff25",
                "sha512_sri": "sha512-fOARMhsP9kCI1GjXgZPEGJg194NiSSSqzElIlKRg8RRJ6XxSdU6JLdQaUKNWradPM7YEveEAtYg8yLOTplYRcg=="
              }
            }
          ]
        }
      },
      "package": {
        "ecosystem": "npm",
        "name": "event-hunter"
      },
      "versions": [
        "1.0.0"
      ]
    }
  ],
  "credits": [
    {
      "contact": [
        "inspector-research@amazon.com"
      ],
      "name": "Amazon Inspector",
      "type": "FINDER"
    }
  ],
  "database_specific": {
    "malicious-packages-origins": [
      {
        "id": "IN-MAL-2026-020494",
        "import_time": "2026-09-23T14:19:31.953567157Z",
        "modified_time": "2026-09-23T14:14:28Z",
        "sha256": "f94b74862f327effaa43c1d01c4fd769626f73214d0706b80fef8b8a395cc3e8",
        "source": "amazon-inspector",
        "versions": [
          "1.0.0"
        ]
      }
    ]
  },
  "details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (f94b74862f327effaa43c1d01c4fd769626f73214d0706b80fef8b8a395cc3e8)\nOn `npm install`, the declared postinstall hook runs `node index.js`, which reads `os.hostname()` and a timestamp, base64-encodes the JSON payload, and issues an HTTPS GET to `https://estimator-nemeses-unwatched.ngrok-free.dev/canary?d=<base64>`. The destination is a hardcoded ngrok tunnel unrelated to any registry or vendor infrastructure, and the beacon fires automatically without any caller action or opt-in. The package's own metadata describes it as a `Dependency Confusion to RCE` proof-of-concept, and the install-time callback carries the installer's internal hostname to an external third party.\n",
  "id": "MAL-2026-16478",
  "modified": "2026-09-23T14:14:28Z",
  "published": "2026-09-23T14:14:28Z",
  "references": [
    {
      "type": "PACKAGE",
      "url": "https://www.npmjs.com/package/event-hunter/v/1.0.0"
    }
  ],
  "schema_version": "1.7.4",
  "summary": "Malicious code in event-hunter (npm)"
}
View JSON API Download JSON