{
  "site": "https://pwn.watch",
  "generatedAt": "2026-10-22T12:59:41.857Z",
  "stack": {
    "id": "node",
    "label": "Node.js",
    "kind": "language",
    "url": "https://pwn.watch/s/node",
    "feed": "https://pwn.watch/s/node/feed.xml"
  },
  "counts": {
    "incidents": 11,
    "live": 2,
    "notFullyPatched": 1,
    "patched": 8
  },
  "incidents": [
    {
      "slug": "nodejs-october-2026-security-releases",
      "title": "Node.js October 2026 security releases (Brotli RCE + TLS/DNS highs)",
      "url": "https://pwn.watch/i/nodejs-october-2026-security-releases",
      "json": "https://pwn.watch/i/nodejs-october-2026-security-releases.json",
      "status": "live",
      "severity": "high",
      "patchStatus": "patched",
      "product": "Node.js",
      "stacks": [
        "node"
      ],
      "cveIds": [
        "CVE-2026-111497",
        "CVE-2026-105482",
        "CVE-2026-105483",
        "CVE-2026-106069",
        "CVE-2026-105481",
        "CVE-2026-106072",
        "CVE-2026-106074",
        "CVE-2026-106070",
        "CVE-2026-106071",
        "CVE-2026-106073"
      ],
      "affectedVersions": [
        "22.x, 24.x, 26.x (EOL lines not patched)"
      ],
      "fixedVersions": [
        "22.23.4",
        "24.22.1",
        "26.12.1"
      ],
      "startedAt": "2026-10-21",
      "closedAt": null,
      "updatedAt": "2026-10-22T11:18:00+02:00",
      "summary": "On Oct 21 2026 Node.js shipped security updates for 22.x, 24.x and 26.x fixing ten vulnerabilities. The headline issue is CVE-2026-111497, a high-severity Brotli decoder out-of-bounds write that can enable remote code execution when attacker-controlled Brotli data is decoded. The same release also fixes TLS hostname/IP bypasses and DNS NUL truncation, and refreshes the bundled CA store for the eMudhra incident."
    },
    {
      "slug": "tensorlake-npm-shai-hulud-worm",
      "title": "tensorlake@0.5.144 npm Shai-Hulud worm with hostage GitHub token",
      "url": "https://pwn.watch/i/tensorlake-npm-shai-hulud-worm",
      "json": "https://pwn.watch/i/tensorlake-npm-shai-hulud-worm.json",
      "status": "live",
      "severity": "critical",
      "patchStatus": "partial",
      "product": "tensorlake (npm)",
      "stacks": [
        "node",
        "npm"
      ],
      "cveIds": [
        "GHSA-8g63-53c9-65j2"
      ],
      "affectedVersions": [
        "0.5.144"
      ],
      "fixedVersions": [
        "0.5.143 (safe pin); remove 0.5.144"
      ],
      "startedAt": "2026-10-07",
      "closedAt": null,
      "updatedAt": "2026-10-22T14:58:57+02:00",
      "summary": "On Oct 8 2026, tensorlake@0.5.144 was published from the real GitHub repo (with npm provenance) carrying a preinstall hook that installs a Shai-Hulud-style credential-stealing worm. It harvests npm/GitHub/cloud/SSH/AI-tool secrets, spreads to other packages, and installs a “gh-token-monitor” that wipes the home directory if the stolen GitHub token is revoked. Pin 0.5.143; remove the monitor before rotating tokens."
    },
    {
      "slug": "subql-common-npm-backdoor",
      "title": "SubQuery @subql/common 5.8.3 published with credential stealer + backdoor",
      "url": "https://pwn.watch/i/subql-common-npm-backdoor",
      "json": "https://pwn.watch/i/subql-common-npm-backdoor.json",
      "status": "closed",
      "severity": "critical",
      "patchStatus": "patched",
      "product": "@subql/common (npm) and downstream @subql/* packages",
      "stacks": [
        "node",
        "npm"
      ],
      "cveIds": [
        "GHSA-9333-3c4x-x3h5",
        "MAL-2026-17571"
      ],
      "affectedVersions": [
        "@subql/common 5.8.3",
        "@subql/common 5.8.3-onf-rt1 (attacker canary, no payload found; 'redteam' dist-tag still points to it)",
        "Downstream ranges that resolve to 5.8.3, e.g. @subql/cli 6.6.3, @subql/node-core 19.3.1, @subql/query 2.25.0, @subql/node-ethereum 6.5.0"
      ],
      "fixedVersions": [
        "@subql/common 5.8.2 (npm 'latest')"
      ],
      "startedAt": "2026-10-05T11:56:29Z",
      "closedAt": "2026-10-10",
      "updatedAt": "2026-10-22T12:04:00+02:00",
      "summary": "On Oct 5 2026 @subql/common 5.8.3 was published to npm through SubQuery's own GitHub Actions trusted publisher, after a short-lived branch changed the release step to swap the built package for a tarball downloaded from ci-artifacts.dev. The payload ran on install (postinstall) and on import, stole CI/cloud/GitHub/npm/Kubernetes/Vault/SSH and AI-tool credentials, offered a reverse shell, and with a workflow-scoped token tried to push a secret-dumping workflow. It was live about 50 minutes; 5.8.2 is the safe version. Many @subql packages accept 5.8.3 through their version ranges."
    },
    {
      "slug": "shai-hulud-chaindrop-npm-keyv-august",
      "title": "CHAINDROP / Mini Shai-Hulud npm worm (keyv + 400+ packages)",
      "url": "https://pwn.watch/i/shai-hulud-chaindrop-npm-keyv-august",
      "json": "https://pwn.watch/i/shai-hulud-chaindrop-npm-keyv-august.json",
      "status": "closed",
      "severity": "critical",
      "patchStatus": "partial",
      "product": "npm ecosystem (keyv, cacheable, flat-cache, cache-manager, and 400+ packages)",
      "stacks": [
        "node",
        "npm"
      ],
      "cveIds": [],
      "affectedVersions": [
        "Compromised patch versions published ~Aug 4 2026 (see Wiz/JFrog package lists)"
      ],
      "fixedVersions": [
        "Pin known-good versions; purge caches; npm CLI 12+ disables preinstall by default"
      ],
      "startedAt": "2026-08-04",
      "closedAt": "2026-08-15",
      "updatedAt": "2026-08-15",
      "summary": "In early August 2026 a Mini Shai-Hulud / CHAINDROP worm compromised keyv and related cache packages, then self-propagated via stolen npm tokens to 400+ packages (1B+ monthly downloads across the graph). Payload runs via preinstall (disabled by default on npm 12+), steals npm/GitHub/cloud/CI secrets, and republishes backdoored versions. Microsoft, Elastic, JFrog and Wiz published analyses."
    },
    {
      "slug": "nx-nx-console-cve-2026-48027",
      "title": "Nx Nx Console: Nx Console Embedded Malicious Code Vulnerability",
      "url": "https://pwn.watch/i/nx-nx-console-cve-2026-48027",
      "json": "https://pwn.watch/i/nx-nx-console-cve-2026-48027.json",
      "status": "closed",
      "severity": "high",
      "patchStatus": "patched",
      "product": "Nx Nx Console",
      "stacks": [
        "node",
        "devtools"
      ],
      "cveIds": [
        "CVE-2026-48027"
      ],
      "affectedVersions": [
        "See vendor advisory / CISA notes (versions not always listed in KEV feed)"
      ],
      "fixedVersions": [
        "See vendor advisory linked in sources"
      ],
      "startedAt": "2026-05-27",
      "closedAt": "2026-05-27",
      "updatedAt": "2026-05-27",
      "summary": "Nx Console contains an embedded malicious code vulnerability that allowed a malicious version of Nx Console to be published. The compromised extension fetched an obfuscated payload that could harvested credentials from multiple sources on disk and in memory. Added to CISA KEV on 2026-05-27."
    },
    {
      "slug": "tanstack-tanstack-cve-2026-45321",
      "title": "TanStack TanStack: TanStack Unspecified Vulnerability",
      "url": "https://pwn.watch/i/tanstack-tanstack-cve-2026-45321",
      "json": "https://pwn.watch/i/tanstack-tanstack-cve-2026-45321.json",
      "status": "closed",
      "severity": "high",
      "patchStatus": "patched",
      "product": "TanStack TanStack",
      "stacks": [
        "node",
        "npm"
      ],
      "cveIds": [
        "CVE-2026-45321"
      ],
      "affectedVersions": [
        "See vendor advisory / CISA notes (versions not always listed in KEV feed)"
      ],
      "fixedVersions": [
        "See vendor advisory linked in sources"
      ],
      "startedAt": "2026-05-27",
      "closedAt": "2026-05-27",
      "updatedAt": "2026-05-27",
      "summary": "TanStack contains an unspecified vulnerability that allowed malicious versions of the product to be published to the npm registry to publish credential-stealing malware under a trusted identity. Added to CISA KEV on 2026-05-27."
    },
    {
      "slug": "shai-hulud-antv-npm-may",
      "title": "Mini Shai-Hulud hits AntV / timeago.js npm ecosystem",
      "url": "https://pwn.watch/i/shai-hulud-antv-npm-may",
      "json": "https://pwn.watch/i/shai-hulud-antv-npm-may.json",
      "status": "closed",
      "severity": "critical",
      "patchStatus": "partial",
      "product": "npm @antv/*, timeago.js, related packages under atool",
      "stacks": [
        "node",
        "npm"
      ],
      "cveIds": [],
      "affectedVersions": [
        "Malicious versions published during May 2026 campaign window"
      ],
      "fixedVersions": [
        "Remove malicious versions; rotate CI/cloud secrets; pin clean releases"
      ],
      "startedAt": "2026-05-19",
      "closedAt": "2026-06-01",
      "updatedAt": "2026-06-01",
      "summary": "May 2026 wave of Mini Shai-Hulud compromised packages across Alibaba’s AntV visualization ecosystem and timeago.js (via npm account atool). Payload harvested CI secrets from GitHub Actions runner memory and dumped credentials to public GitHub repos. StepSecurity documented the ongoing spread."
    },
    {
      "slug": "nextjs-react-may-2026-security-release",
      "title": "Next.js / React Server Components May 2026 security release",
      "url": "https://pwn.watch/i/nextjs-react-may-2026-security-release",
      "json": "https://pwn.watch/i/nextjs-react-may-2026-security-release.json",
      "status": "closed",
      "severity": "high",
      "patchStatus": "patched",
      "product": "Next.js; react-server-dom-webpack/parcel/turbopack",
      "stacks": [
        "node"
      ],
      "cveIds": [
        "CVE-2026-23870"
      ],
      "affectedVersions": [
        "Next.js 13.x–16.x App Router (see advisory tables); RSC packages 19.0.0–19.0.5, 19.1.0–19.1.6, 19.2.0–19.2.5"
      ],
      "fixedVersions": [
        "Next.js 15.5.18",
        "Next.js 16.2.6",
        "react-server-dom-* 19.0.6 / 19.1.7 / 19.2.6"
      ],
      "startedAt": "2026-05-06",
      "closedAt": "2026-05-07",
      "updatedAt": "2026-05-08",
      "summary": "Coordinated May 6–7 2026 security release for React Server Components (CVE-2026-23870 DoS) and multiple Next.js advisories spanning middleware/proxy bypass, XSS, SSRF, cache poisoning and DoS. Upgrade Next.js to 15.5.18 or 16.2.6; react-server-dom-* to 19.0.6 / 19.1.7 / 19.2.6. Next.js 13.x/14.x had no planned patches."
    },
    {
      "slug": "openai-employee-devices-tanstack-shai-hulud",
      "title": "OpenAI employee devices hit via TanStack Mini Shai-Hulud wave",
      "url": "https://pwn.watch/i/openai-employee-devices-tanstack-shai-hulud",
      "json": "https://pwn.watch/i/openai-employee-devices-tanstack-shai-hulud.json",
      "status": "closed",
      "severity": "high",
      "patchStatus": "patched",
      "product": "TanStack-related npm packages / OpenAI employee endpoints",
      "stacks": [
        "node",
        "npm"
      ],
      "cveIds": [],
      "affectedVersions": [
        "Compromised TanStack package versions in the May wave"
      ],
      "fixedVersions": [],
      "startedAt": "2026-05-01",
      "closedAt": "2026-05-31",
      "updatedAt": "2026-05-31",
      "summary": "In May 2026 OpenAI confirmed two employee devices were breached as part of the broader TanStack Mini Shai-Hulud npm supply-chain campaign. OpenAI said customer data, production systems, IP and deployed software were not impacted."
    },
    {
      "slug": "react-rsc-dos-cve-2026-23869-april",
      "title": "React Server Components DoS CVE-2026-23869 (April Next.js advisory)",
      "url": "https://pwn.watch/i/react-rsc-dos-cve-2026-23869-april",
      "json": "https://pwn.watch/i/react-rsc-dos-cve-2026-23869-april.json",
      "status": "closed",
      "severity": "high",
      "patchStatus": "patched",
      "product": "Next.js App Router / React Server Components",
      "stacks": [
        "node"
      ],
      "cveIds": [
        "CVE-2026-23869"
      ],
      "affectedVersions": [
        "Next.js >=13.0.0 <15.5.15 and >=16.0 <16.2.3"
      ],
      "fixedVersions": [
        "15.5.15",
        "16.2.3"
      ],
      "startedAt": "2026-04-08",
      "closedAt": "2026-04-08",
      "updatedAt": "2026-04-08",
      "summary": "April 8 2026 Next.js advisory GHSA-q4gf-8mx6-v5v3 tracks upstream CVE-2026-23869: crafted requests to App Router Server Function endpoints can cause excessive CPU / DoS. Patched in Next.js 15.5.15 and 16.2.3."
    },
    {
      "slug": "react-native-community-cli-cve-2025-11953",
      "title": "React Native Community CLI: React Native Community CLI OS Command Injection Vulnerability",
      "url": "https://pwn.watch/i/react-native-community-cli-cve-2025-11953",
      "json": "https://pwn.watch/i/react-native-community-cli-cve-2025-11953.json",
      "status": "closed",
      "severity": "high",
      "patchStatus": "patched",
      "product": "React Native Community CLI",
      "stacks": [
        "node"
      ],
      "cveIds": [
        "CVE-2025-11953"
      ],
      "affectedVersions": [
        "See vendor advisory / CISA notes (versions not always listed in KEV feed)"
      ],
      "fixedVersions": [
        "See vendor advisory linked in sources"
      ],
      "startedAt": "2026-02-05",
      "closedAt": "2026-02-05",
      "updatedAt": "2026-02-05",
      "summary": "React Native Community CLI contains an OS command injection vulnerability which could allow unauthenticated network attackers to send POST requests to the Metro Development Server and run arbitrary executables via a vulnerable endpoint exposed by the server. On Windows, attackers can also execute arbitrary shell commands with fully controlled arguments. Added to CISA KEV on 2026-02-05."
    }
  ],
  "changes": [
    {
      "incident": "nodejs-october-2026-security-releases",
      "incidentTitle": "Node.js October 2026 security releases (Brotli RCE + TLS/DNS highs)",
      "severity": "high",
      "status": "live",
      "patchStatus": "patched",
      "date": "2026-10-21",
      "title": "Node.js published the Wednesday security releases and advisory.",
      "body": null,
      "sourceUrl": null,
      "url": "https://pwn.watch/i/nodejs-october-2026-security-releases"
    },
    {
      "incident": "nodejs-october-2026-security-releases",
      "incidentTitle": "Node.js October 2026 security releases (Brotli RCE + TLS/DNS highs)",
      "severity": "high",
      "status": "live",
      "patchStatus": "patched",
      "date": "2026-10-21",
      "title": "Vercel deployed WAF rules for the Brotli attack vector and began rolling patched runtimes.",
      "body": null,
      "sourceUrl": null,
      "url": "https://pwn.watch/i/nodejs-october-2026-security-releases"
    },
    {
      "incident": "subql-common-npm-backdoor",
      "incidentTitle": "SubQuery @subql/common 5.8.3 published with credential stealer + backdoor",
      "severity": "critical",
      "status": "closed",
      "patchStatus": "patched",
      "date": "2026-10-10",
      "title": "SubQuery maintainer: compromised token deleted, security review started.",
      "body": null,
      "sourceUrl": "https://github.com/subquery/subql/issues/3047",
      "url": "https://pwn.watch/i/subql-common-npm-backdoor"
    },
    {
      "incident": "tensorlake-npm-shai-hulud-worm",
      "incidentTitle": "tensorlake@0.5.144 npm Shai-Hulud worm with hostage GitHub token",
      "severity": "critical",
      "status": "live",
      "patchStatus": "partial",
      "date": "2026-10-08",
      "title": "0.5.144 published via the project’s release workflow.",
      "body": null,
      "sourceUrl": null,
      "url": "https://pwn.watch/i/tensorlake-npm-shai-hulud-worm"
    },
    {
      "incident": "tensorlake-npm-shai-hulud-worm",
      "incidentTitle": "tensorlake@0.5.144 npm Shai-Hulud worm with hostage GitHub token",
      "severity": "critical",
      "status": "live",
      "patchStatus": "partial",
      "date": "2026-10-08+",
      "title": "StepSecurity / Socket detections and public write-ups; remediation guidance emphasizes removing gh-token-monitor before revoke.",
      "body": null,
      "sourceUrl": null,
      "url": "https://pwn.watch/i/tensorlake-npm-shai-hulud-worm"
    },
    {
      "incident": "tensorlake-npm-shai-hulud-worm",
      "incidentTitle": "tensorlake@0.5.144 npm Shai-Hulud worm with hostage GitHub token",
      "severity": "critical",
      "status": "live",
      "patchStatus": "partial",
      "date": "2026-10-07",
      "title": "Malicious commits land on tensorlakeai/tensorlake main.",
      "body": null,
      "sourceUrl": null,
      "url": "https://pwn.watch/i/tensorlake-npm-shai-hulud-worm"
    },
    {
      "incident": "subql-common-npm-backdoor",
      "incidentTitle": "SubQuery @subql/common 5.8.3 published with credential stealer + backdoor",
      "severity": "critical",
      "status": "closed",
      "patchStatus": "patched",
      "date": "2026-10-06",
      "title": "GMO Flatt Security publishes payload analysis and response guidance.",
      "body": null,
      "sourceUrl": "https://flatt.tech/research/posts/subql-common-npm-supply-chain-attack/",
      "url": "https://pwn.watch/i/subql-common-npm-backdoor"
    },
    {
      "incident": "subql-common-npm-backdoor",
      "incidentTitle": "SubQuery @subql/common 5.8.3 published with credential stealer + backdoor",
      "severity": "critical",
      "status": "closed",
      "patchStatus": "patched",
      "date": "2026-10-05T11:56Z",
      "title": "Malicious @subql/common 5.8.3 published via the repo's GitHub Actions trusted publisher (canary 5.8.3-onf-rt1 published ~32 min earlier).",
      "body": null,
      "sourceUrl": "https://www.stepsecurity.io/blog/subql-ecosystem-compromised",
      "url": "https://pwn.watch/i/subql-common-npm-backdoor"
    },
    {
      "incident": "subql-common-npm-backdoor",
      "incidentTitle": "SubQuery @subql/common 5.8.3 published with credential stealer + backdoor",
      "severity": "critical",
      "status": "closed",
      "patchStatus": "patched",
      "date": "2026-10-05T12:14Z",
      "title": "StepSecurity opens security issue #3047 in subquery/subql.",
      "body": null,
      "sourceUrl": "https://github.com/subquery/subql/issues/3047",
      "url": "https://pwn.watch/i/subql-common-npm-backdoor"
    },
    {
      "incident": "subql-common-npm-backdoor",
      "incidentTitle": "SubQuery @subql/common 5.8.3 published with credential stealer + backdoor",
      "severity": "critical",
      "status": "closed",
      "patchStatus": "patched",
      "date": "2026-10-05T12:46Z",
      "title": "GitHub publishes malware advisory GHSA-9333-3c4x-x3h5; version removed from npm (~50 minutes live); 'latest' back to 5.8.2.",
      "body": null,
      "sourceUrl": "https://github.com/advisories/GHSA-9333-3c4x-x3h5",
      "url": "https://pwn.watch/i/subql-common-npm-backdoor"
    },
    {
      "incident": "shai-hulud-chaindrop-npm-keyv-august",
      "incidentTitle": "CHAINDROP / Mini Shai-Hulud npm worm (keyv + 400+ packages)",
      "severity": "critical",
      "status": "closed",
      "patchStatus": "partial",
      "date": "2026-08-04",
      "title": "keyv/cacheable malicious releases observed; worm begins propagating.",
      "body": null,
      "sourceUrl": null,
      "url": "https://pwn.watch/i/shai-hulud-chaindrop-npm-keyv-august"
    },
    {
      "incident": "shai-hulud-chaindrop-npm-keyv-august",
      "incidentTitle": "CHAINDROP / Mini Shai-Hulud npm worm (keyv + 400+ packages)",
      "severity": "critical",
      "status": "closed",
      "patchStatus": "partial",
      "date": "2026-08-04/06",
      "title": "Microsoft, Elastic, JFrog publish analyses; 400+ packages listed.",
      "body": null,
      "sourceUrl": null,
      "url": "https://pwn.watch/i/shai-hulud-chaindrop-npm-keyv-august"
    },
    {
      "incident": "nx-nx-console-cve-2026-48027",
      "incidentTitle": "Nx Nx Console: Nx Console Embedded Malicious Code Vulnerability",
      "severity": "high",
      "status": "closed",
      "patchStatus": "patched",
      "date": "2026-05-27",
      "title": "CISA added CVE-2026-48027 to the KEV catalog (due 2026-06-10).",
      "body": null,
      "sourceUrl": null,
      "url": "https://pwn.watch/i/nx-nx-console-cve-2026-48027"
    },
    {
      "incident": "tanstack-tanstack-cve-2026-45321",
      "incidentTitle": "TanStack TanStack: TanStack Unspecified Vulnerability",
      "severity": "high",
      "status": "closed",
      "patchStatus": "patched",
      "date": "2026-05-27",
      "title": "CISA added CVE-2026-45321 to the KEV catalog (due 2026-06-10).",
      "body": null,
      "sourceUrl": null,
      "url": "https://pwn.watch/i/tanstack-tanstack-cve-2026-45321"
    },
    {
      "incident": "react-native-community-cli-cve-2025-11953",
      "incidentTitle": "React Native Community CLI: React Native Community CLI OS Command Injection Vulnerability",
      "severity": "high",
      "status": "closed",
      "patchStatus": "patched",
      "date": "2026-02-05",
      "title": "CISA added CVE-2025-11953 to the KEV catalog (due 2026-02-26).",
      "body": null,
      "sourceUrl": null,
      "url": "https://pwn.watch/i/react-native-community-cli-cve-2025-11953"
    }
  ]
}
