Skip to content
Heist/ feed
Back to feed
Unrated

Malicious code in react-paginate-v5 (npm)

Type: advisorySources: OSV

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (2c0f91fe35323a6f47033b90ebaf88498a36fd7e8e933711b2cf301dba2e4759) react-paginate-v5@99.0.0 is a dependency-confusion probe published under a name resembling the popular react-paginate package and pinned to an implausibly high version (99.0.0) to win resolution against an internal package. Its package.json declares a preinstall lifecycle script that runs `nslookup dep-confusion-poc.2chsn9exkdupkr3cxed7vp7sk.canarytokens.com`, which fires automatically on `npm install` and emits a DNS query from the installer's resolver to an attacker/researcher-controlled canary subdomain. The subdomain label (`dep-confusion-poc`) self-identifies the operation as a dependency-confusion test. The DNS lookup confirms successful installation to the operator of the canary token, identifying hosts and networks where an internal package name was shadowed by this public squat. While the beacon itself only exfiltrates the fact of installation plus resolver metadata, the same install-time execution primitive can carry any shell command, and the package has no legitimate functionality.

Products
react-paginate-v5
Affected versions
99.0.0
Fixed versions
Not specified
CVEs
Not specified
Confirmed fixed CVEs
Not specified
Updated in this feed
30 Oct 2026, 01:56 UTC · Revision 1

Source evidence

Malicious code in react-paginate-v5 (npm)

core-osv · Original source

Published 11 Oct 2026, 13:58 UTC

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (2c0f91fe35323a6f47033b90ebaf88498a36fd7e8e933711b2cf301dba2e4759) react-paginate-v5@99.0.0 is a dependency-confusion probe published under a name resembling the popular react-paginate package and pinned to an implausibly high version (99.0.0) to win resolution against an internal package. Its package.json declares a preinstall lifecycle script that runs `nslookup dep-confusion-poc.2chsn9exkdupkr3cxed7vp7sk.canarytokens.com`, which fires automatically on `npm install` and emits a DNS query from the installer's resolver to an attacker/researcher-controlled canary subdomain. The subdomain label (`dep-confusion-poc`) self-identifies the operation as a dependency-confusion test. The DNS lookup confirms successful installation to the operator of the canary token, identifying hosts and networks where an internal package name was shadowed by this public squat. While the beacon itself only exfiltrates the fact of installation plus resolver metadata, the same install-time execution primitive can carry any shell command, and the package has no legitimate functionality.

osv:MAL-2026-17777

react-paginate-v5

Fixed versions: Not specified

Complete source record
{
  "id": "e87c4b06d4625510ff7d78aa50e1f0688a536d5c22fb07ac3f8ecdccc5de6235",
  "url": "https://osv.dev/vulnerability/MAL-2026-17777",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Malicious code in react-paginate-v5 (npm)",
    "summary": "--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (2c0f91fe35323a6f47033b90ebaf88498a36fd7e8e933711b2cf301dba2e4759) react-paginate-v5@99.0.0 is a dependency-confusion probe published under a name resembling the popular react-paginate package and pinned to an implausibly high version (99.0.0) to win resolution against an internal package. Its package.json declares a preinstall lifecycle script that runs `nslookup dep-confusion-poc.2chsn9exkdupkr3cxed7vp7sk.canarytokens.com`, which fires automatically on `npm install` and emits a DNS query from the installer's resolver to an attacker/researcher-controlled canary subdomain. The subdomain label (`dep-confusion-poc`) self-identifies the operation as a dependency-confusion test. The DNS lookup confirms successful installation to the operator of the canary token, identifying hosts and networks where an internal package name was shadowed by this public squat. While the beacon itself only exfiltrates the fact of installation plus resolver metadata, the same install-time execution primitive can carry any shell command, and the package has no legitimate functionality.",
    "evidence": "osv:MAL-2026-17777",
    "products": [
      {
        "name": {
          "value": "react-paginate-v5",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "99.0.0",
            "evidence": "/affected/0/versions"
          }
        ]
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "MAL-2026-17777",
      "aliases": [
        "MAL-2026-17777"
      ],
      "affected": [
        {
          "package": {
            "name": "react-paginate-v5",
            "purl": "pkg:npm/react-paginate-v5",
            "ecosystem": "npm"
          },
          "versions": [
            "99.0.0"
          ],
          "database_specific": {
            "cwes": [
              {
                "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/react-paginate-v5/MAL-2026-17777.json",
            "indicators": {
              "evidence_files": [
                {
                  "path": "package.json",
                  "tlsh": "3ae07d34ac21583319f982f70872550716b3dc6a9019bd0ea75ba00ce5ceeb3937b148",
                  "sha256": "e4ddadc2953f2675846dc3eb28ff1a9f106ddb9202ab6bdef575a8ba8201b32f"
                }
              ],
              "package_integrity": [
                {
                  "hashes": {
                    "sha1": "cfdcb7e56ec646f42f229f7eed0a0e3099e6180b",
                    "sha512_sri": "sha512-miYSw1WOeIy/dXd+24lX0KfQ1+eEqzyoEKHM+LN5YFQ0ZclyLcsQlfQNHZHePIje19XPBXGjx35Muf/vgRs17Q=="
                  },
                  "filename": "react-paginate-v5-99.0.0.tgz"
                }
              ]
            }
          }
        }
      ],
      "modified": "2026-10-11T14:30:09.173125481Z",
      "provider": "osv",
      "references": [
        "https://www.npmjs.com/package/react-paginate-v5/v/99.0.0"
      ],
      "provider_metadata": {
        "malicious-packages-origins": [
          {
            "id": "IN-MAL-2026-021429",
            "sha256": "2c0f91fe35323a6f47033b90ebaf88498a36fd7e8e933711b2cf301dba2e4759",
            "source": "amazon-inspector",
            "versions": [
              "99.0.0"
            ],
            "import_time": "2026-10-11T14:18:04.861546546Z",
            "modified_time": "2026-10-11T13:58:11Z"
          }
        ]
      }
    },
    "related_cves": [],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 286048,
  "published_at": "2026-10-11T13:58:11+00:00"
}