p PatchFirst

PatchFirst · Latest vulnerabilities

Node.js stack vulnerabilities · Page 26

Vulnerabilities published for Node.js in the last 30 days: 413. Listed in the KEV catalogue: 0.

Filter vulnerabilities
Node.js

Early warnings

Fresh vulnerability reports from vendor announcements and security news. These warnings do not change the security rating.

  1. node.js

    No fix published

    Node.js: denial of service

    According to GitHub Advisory Database, Node.js has a denial of service vulnerability (CVE-2026-109932). The exact affected versions are unspecified. The report does not name a fixed version.

    What to do now: Check whether a Node.js update with the fix is available and install it.

    CVE-2026-109932

  2. node.js

    No fix published

    Node.js: remote code execution

    According to OpenNet, Node.js has a remote code execution vulnerability (CVE-2026-111497). The exact affected versions are unspecified. The report does not name a fixed version.

    What to do now: Check whether a Node.js update with the fix is available and install it.

    CVE-2026-111497

Vulnerabilities: 7770

  1. CVE-2026-54504

    High · CVSS 8.8EPSS 0.57%Fix available

    MCP Documentation Server: Web UI API binds to all interfaces without authentication by default

    MCP Documentation Server is a local-first document management and semantic search server for AI coding agents. From 1.13.0 until 1.13.1, the automatically started Web UI in src/server.ts calls startWebServer in src/web-server.ts with START_WEB_UI enabled by default and WEB_PORT set to 3080. startWebServer uses app.listen(PORT) without a host, which binds the unauthenticated document-management API to all interfaces rather than localhost. A network-reachable client can invoke GET /api/documents, GET /api/documents/:id, POST /api/documents, POST /api/search-all, DELETE /api/documents/:id, and GET /api/config without credentials to enumerate and

    • Update to 1.13.1
    Published Updated
  2. CVE-2026-54546

    Medium · CVSS 5EPSS 0.37%Fix available

    CloudTAK: Authenticated full-read SSRF in CloudTAK basemap import (PUT /api/basemap) — no IP-classification guard

    CloudTAK is a browser-based Common Operating Picture and situational awareness tool compatible with TAK. Prior to 13.22.1, the authenticated PUT /api/basemap endpoint passes an attacker-controlled URL through importBasemapURL() in api/routes/basemap.ts to fetch(url) without resolved-address classification or redirect revalidation. BasemapProtocol.isValidURL in api/lib/interface-basemap.ts checks only the HTTP or HTTPS scheme and is not applied on the vulnerable import path. Direct internal addresses, alternate IP encodings, and redirects to internal addresses can reach cloud metadata, loopback, private, and CGNAT HTTP services. The OptionalTi

    • Update to 13.22.1
    Published Updated
  3. CVE-2026-85715

    High · CVSS 7.5EPSS 0.61%Fix available

    ExifReader: DoS via Crafted HEIC/AVIF iloc Box - Memory Exhaustion

    ExifReader is a JavaScript Exif information parser. Prior to 4.41.1, ExifReader parses attacker-controlled HEIC or AVIF ISO-BMFF files in getItems() within src/image-header-iso-bmff-iloc.js and trusts iloc itemCount and extentCount values while allocating an extent object for every nested-loop iteration. When offsetSize, lengthSize, baseOffsetSize, and indexSize are zero, the extent fields consume no input bytes and the buffer offset does not advance, but the parser can still allocate up to itemCount multiplied by extentCount objects without an allocation budget. A small malicious iloc box can therefore cause hundreds of megabytes of heap gro

    • Update to 4.41.1
    Published Updated
  4. CVE-2026-86039

    High · CVSS 8.2EPSS 0.27%Fix available

    libp2p: PeerStore accepts attacker-signed PeerRecords for a victim peer ID and stores certified attacker addresses

    libp2p is a JavaScript implementation of the libp2p networking stack. From 8.0.0 until 12.0.24, @libp2p/peer-store in packages/peer-store/src/index.ts uses consumePeerRecord to verify a RecordEnvelope signature but does not require PeerRecord.peerId in the signed payload to equal the signer peer ID derived by RecordEnvelope.openAndCertify. The expectedPeer option checks only the envelope signer, and the gossipsub Peer Exchange path can provide the attacker's own peer ID as expectedPeer. An attacker can therefore sign a record with the attacker's key, place a victim peer ID and attacker-controlled multiaddrs in the payload, and have certified

    • Update to 12.0.24
    Published Updated
  5. CVE-2026-86038

    High · CVSS 7.5EPSS 0.19%Fix available

    libp2p: Gossipsub StrictSign accepts attacker-signed messages as a victim RSA peer ID

    libp2p is a JavaScript implementation of the libp2p networking stack. From 15.0.0 until 16.0.5, @libp2p/gossipsub uses the default StrictSign policy in packages/gossipsub/src/utils/buildRawMessage.ts, where validateToRawMessage verifies a signature with attacker-controlled msg.key but skips binding that key to msg.from when the claimed author is an RSA peer ID that does not inline a public key. An unauthenticated attacker can place a victim RSA peer ID in msg.from, sign the message with the attacker's private key, and supply the attacker's public key in msg.key, causing the message to be accepted and propagated as authored by the victim. Appl

    • Update to 16.0.5
    Published Updated
  6. CVE-2026-61793

    Medium · CVSS 6.9EPSS 0.5%Fix available

    Nuxt OG Image has unauthenticated SSRF via `fonts[].path` URL parameter

    Nuxt OG Image generates OG Images with Vue templates in Nuxt. From 6.0.2 until 6.7.0, nuxt-og-image exposes the unauthenticated /_og/d/** route when the documented defaults security.strict = false and security.secret = "" are used, and base64url-decodes the fonts parameter through decodeOgImageParams. Attacker-controlled fonts[].path values flow through loadDefinedFonts into the font-assets/node.js binding, which performs a server-side fetch without validating the URL scheme, origin, resolved address, or redirects. This permits blind requests to loopback, private, link-local, cloud metadata, and other internal HTTP services, while differences

    • Update to 6.7.0
    Published Updated
  7. CVE-2026-63459

    High · CVSS 8.7EPSS 0.42%Fix available

    Vendure: Stored XSS in the Admin Dashboard via unsafe HTML-stripping (innerHTML) of entity descriptions

    Vendure is an open-source headless commerce platform. Prior to 3.6.5, RichTextDescriptionCell in packages/dashboard/src/lib/components/shared/table-cell/order-table-cell-components.tsx attempts to strip markup by assigning an administrator-controlled description to a live element's innerHTML and then reading textContent. Active resource markup can execute an event handler during the innerHTML assignment before textContent is read. A lower-privilege administrator can store such markup in descriptions rendered by the Products list, Collections list, Promotions list, Payment Methods list, or Shipping Methods list, and script executes when anothe

    • Update to 3.6.5
    Published Updated
  8. CVE-2026-63461

    Medium · CVSS 5.3EPSS 0.44%Fix available

    Vendure: Shop API list queries can return non-public entities when filterOperator is OR

    Vendure is an open-source headless commerce platform. Prior to 3.6.5, the public Shop API products, collections, and facets queries combine mandatory visibility guards with caller-supplied filters using the caller-controlled filterOperator. When filterOperator is OR, a predicate matching a hidden entity can bypass the Product.enabled, Collection.isPrivate, or Facet.isPrivate guard. An unauthenticated caller can therefore retrieve disabled products and private collections or facets. This issue is fixed in version 3.6.5.

    • Update to 3.6.5
    Published Updated
  9. CVE-2026-63472

    Critical · CVSS 9.1EPSS 0.59%Fix available

    Vendure: External-authentication account takeover: external login linked to a pre-existing account by email without verification

    Vendure is an open-source headless commerce platform. Prior to 3.7.0, ExternalAuthenticationService.createCustomerAndUser in packages/core/src/service/helpers/external-authentication/external-authentication.service.ts selects an existing customer user by emailAddress and attaches a newly presented ExternalAuthenticationMethod without requiring verified to be true. In deployments with a custom external AuthenticationStrategy that forwards an email whose ownership the provider has not verified, an attacker can authenticate with a victim's email and bind the attacker's external identity to the victim's existing account. This can expose orders, a

    • Update to 3.7.0
    Published Updated
  10. CVE-2026-63460

    High · CVSS 7.5EPSS 0.61%Fix available

    Vendure: Unauthenticated ReDoS via `regex` filter on SQLite backends

    Vendure is an open-source headless commerce platform. Prior to 3.6.5, the public Shop GraphQL API allows an unauthenticated caller to supply a catastrophically backtracking pattern through StringOperators.regex. packages/core/src/service/helpers/list-query-builder/parse-filter-params.ts passes the raw pattern to the REGEXP implementation registered by packages/core/src/service/helpers/list-query-builder/list-query-builder.ts, and better-sqlite3 and sqljs evaluate it synchronously in the Node.js event loop. ShopProductsResolver.products is publicly reachable, so one nested-quantifier pattern can block request processing and make the storefront

    • Update to 3.6.5
    Published Updated
  11. CVE-2026-71538

    High · CVSS 8.5EPSS 0.21%Fix available

    @cyclonedx/cyclonedx-npm: Shell Injection via Unsanitized --workspace Argument on Windows

    @cyclonedx/cyclonedx-npm creates CycloneDX Software Bill of Materials from npm projects. Prior to version 6.0.0, the Windows fallback path in src/npmRunner.ts, used when npm_execpath does not provide the npm CLI path, can construct a shell command containing an untrusted value from the --workspace option. When an attacker can influence that option and the fallback npm execution path is reached, shell metacharacters in the workspace value can execute arbitrary operating-system commands with the privileges of the user running the CLI, allowing data access, file modification, or service disruption. This issue is fixed in version 6.0.0.

    • Update to 6.0.0
    Published Updated
  12. CVE-2026-92963

    Medium · CVSS 6.9EPSS 0.34%Fix available

    vm2 before 3.11.2 Information Disclosure via Internal State

    vm2 versions before 3.11.2 fail to properly restrict access to the VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL global variable. Attackers can access this internal state object through globalThis to retrieve sensitive sandbox internals.

    • Update to 3.11.2
    Published Updated
  13. CVE-2026-92962

    Low · CVSS 2.1EPSS 0.15%Fix available

    vm2 before 3.11.4 Defense Invariant Violation via setup-sandbox.js

    vm2 is a sandbox for running untrusted JavaScript. In vm2 versions up to and including 3.11.3, the defaultSandboxPrepareStackTrace function in lib/setup-sandbox.js builds its output array using prototype-walking index assignment (lines[lines.length] = value) rather than a prototype-bypassing define-property primitive. Because this bridge-internal array is allocated in the sandbox realm, code inside the sandbox can install an accessor on Array.prototype for the relevant index; the accessor is then invoked whenever the sandbox reads error.stack (or otherwise triggers Error.prepareStackTrace), allowing sandbox code to observe and intercept each

    • Update to 3.11.4
    Published Updated
  14. CVE-2026-92961

    High · CVSS 8.7EPSS 0.53%Fix available

    vm2 before 3.11.6 Memory Exhaustion DoS via bufferAllocLimit Bypass

    vm2 before 3.11.6 fails to enforce bufferAllocLimit on ArrayBuffer, SharedArrayBuffer, and TypedArray constructors, allowing attackers to allocate arbitrary host memory. Attackers can bypass the buffer allocation cap by using these V8 intrinsics to exhaust host process memory and trigger out-of-memory conditions.

    • Update to 3.11.6
    Published Updated
  15. CVE-2026-92960

    Critical · CVSS 10EPSS 0.47%Fix available

    vm2 before 3.11.6 Process-wide State Exposure via os and dns

    vm2 before 3.11.6 fails to restrict access to os and dns builtins under the builtin: ['*'] configuration, allowing sandbox code to read host process identity and network topology. Attackers can invoke dns.setServers() to hijack the host process DNS resolver globally, redirecting all subsequent host DNS queries through an attacker-controlled resolver.

    • Update to 3.11.6
    Published Updated
  16. CVE-2026-92959

    High · CVSS 7.1EPSS 0.45%Public exploitFix available

    vm2 before 3.11.8 allowAsync Bypass via Promise Thenable

    vm2 before 3.11.8 does not fully enforce the allowAsync: false option in VM and NodeVM. While localPromise.prototype.then is replaced with a handler that throws 'Async not available', the sandbox's Promise static methods (Promise.resolve, Promise.all, Promise.race, Promise.any, and Promise.allSettled) still assimilate attacker-supplied thenables: native promise resolution performs PromiseResolveThenableJob and invokes the sandboxed code's then method in a microtask without passing through the patched then, so the async restriction is never applied. As a result, sandboxed script can schedule work that runs after VM.run() or NodeVM.run() has re

    • Update to 3.11.8
    Published Updated
  17. CVE-2026-92958

    High · CVSS 8.4EPSS 0.38%Fix available

    vm2 before 3.11.7 Denylist Bypass via fs/promises

    vm2 through 3.11.6 contains a builtin-module denylist bypass in NodeVM. When the embedder uses the builtin wildcard together with negative entries (e.g. require: { builtin: ['*', '-fs', '-child_process'] }), negative entries are matched by exact module name in lib/builtin.js, so -fs removes only the builtin named fs and does not remove builtin subpaths such as fs/promises. Sandboxed code can therefore call require('fs/promises') or require('node:fs/promises') and reach the promise-based filesystem API despite fs being denied; node: prefix handling is likewise inconsistent (a -node:fs/promises entry does not block require('fs/promises')). Host

    • Update to 3.11.7
    Published Updated
  18. CVE-2026-92957

    Critical · CVSS 9.4EPSS 0.54%Fix available

    vm2 before 3.11.7 NodeVM Builtin Deny-List Bypass via node: Prefix

    vm2 through 3.11.6 does not normalize `node:`-prefixed builtin specifiers when evaluating user-supplied negative (deny) entries in a NodeVM wildcard require policy. Although NodeVM strips the `node:` prefix during require() resolution, negative wildcard entries are matched by exact string comparison against the canonical builtin names, so a policy such as `new NodeVM({ require: { builtin: ['*', '-node:child_process'] } })` fails to deny the canonical `child_process` module. Sandboxed code can therefore obtain the host `child_process` builtin via `require('child_process')` or `require('node:child_process')`, gaining references to process-spawn

    • Update to 3.11.7
    Published Updated
  19. CVE-2026-92956

    Critical · CVSS 10EPSS 0.59%Public exploitFix available

    vm2 3.10.1 through 3.11.6 Sandbox Escape via WebAssembly.compileStreaming

    vm2 versions 3.10.1 through 3.11.6 contain a sandbox escape reachable from a default `new VM()` sandbox when running on Node.js 26. WebAssembly.compileStreaming and WebAssembly.instantiateStreaming can produce a raw host-realm Promise that rejects with a host-realm error object; by controlling Symbol.species via Promise.prototype.finally, sandbox code receives that raw host error, walks from the host error constructor to the host Function constructor, and recovers the real host `process` object, gaining host Node.js capabilities (e.g. access to host modules such as fs) in the context of the process running the sandbox. No NodeVM, require perm

    • Update to 3.11.7
    Published Updated
  20. CVE-2026-92955

    Critical · CVSS 10EPSS 0.71%Public exploitFix available

    vm2 before 3.11.8 Sandbox Escape via NodeVM

    vm2 before 3.11.8 contains a sandbox escape vulnerability in NodeVM that allows attackers to access the host __proto__ getter/setter through console._stdout and console._stderr. Attackers can overwrite EventEmitter.prototype.emit and trigger process events to execute code with process context, bypassing code generation restrictions.

    • Update to 3.11.8
    Published Updated

Check your server

Check your installed stack and versions against the current vulnerability feeds.

Check your server →