p PatchFirst

PatchFirst · Latest vulnerabilities

Node.js stack vulnerabilities · Page 22

Vulnerabilities published for Node.js in the last 30 days: 426. 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: 7768

  1. CVE-2026-102674

    High · CVSS 8.2EPSS 0.24%Fix available

    Electron: Windows opened from a sandboxed top-level document do not inherit its sandbox restrictions

    Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to 41.10.6, 42.9.2, 43.4.1, and 44.0.0-beta.5, windows opened from a sandboxed top-level document did not inherit that document's active HTML sandbox restrictions. Untrusted content in a sandboxed top-level document that was permitted to open popups could therefore create a window with the Electron application's full origin instead of the restricted origin intended by the sandbox. Applications that deny such popups with setWindowOpenHandler are not affected. This issue is fixed in versions 41.10.6, 42.9.2, 43.4.1, and 44.0.0-beta.5.

    • Update to 41.10.6
    • Update to 42.9.2
    • Update to 43.4.1
    • Update to 44.0.0-beta.5
    Published Updated
  2. CVE-2026-102673

    High · CVSS 8.2EPSS 0.13%Fix available

    Electron drops inherited HTML sandbox restrictions for popups opened through OpenURLFromTab

    Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to 41.10.4, 42.5.2, and 43.0.0, popups opened from a sandboxed iframe through Electron's OpenURLFromTab navigation path, including links using target="_blank" or a middle-click, did not receive the inherited HTML sandbox restrictions. An untrusted iframe using the allow-scripts allow-popups configuration could therefore open a popup with the embedding application's full origin, exposing that origin's cookies, storage, and same-origin scripting capabilities. Applications that do not embed untrusted content in sandboxed iframes are not

    • Update to 41.10.4
    • Update to 42.5.2
    • Update to 43.0.0
    Published Updated
  3. CVE-2026-97711

    Low · CVSS 2.3EPSS 0.32%Fix available

    Serialize JavaScript: Cross-site scripting (XSS) via unescaped </script> in serialized function bodies

    Serialize JavaScript serializes JavaScript values to a superset of JSON that includes regular expressions and functions. From 7.1.1 until 7.1.2, function values serialized by serialize-javascript are not fully protected against script-closing tags in attacker-influenced function source because SCRIPT_CLOSE_REGEXP can consume a second closing tag inside one match. When the serialized function is embedded in a script element, the surviving closing tag terminates the element early and causes the remaining output to be parsed as HTML, enabling cross-site scripting in the page origin. Only function values are affected; ordinary data values and opt

    • Update to 7.1.2
    • Update to 7.1.2+~5.0.4-1
    Published Updated
  4. CVE-2026-102600

    High · CVSS 7.5EPSS 0.38%Fix available

    Socket.IO: Prototype Pollution via Unsafe Client Session Lookup

    Socket.IO enables bidirectional and low-latency communication for every platform. Prior to 0.1.1, @socket.io/cluster-engine uses inherited object properties when looking up attacker-controlled session IDs in clustered deployments. Special property names such as __proto__ or constructor can resolve through the object prototype chain instead of identifying an actual connected client, causing the Node.js process to crash and resulting in denial of service. Applications that do not use @socket.io/cluster-engine are not affected. This issue is fixed in version 0.1.1.

    • Update to 0.1.1
    Published Updated
  5. CVE-2026-102422

    Critical · CVSS 9.2EPSS 0.38%Public exploitFix available

    shell-quote `quote()` command injection via a line terminator in a token after a `{ comment }` token

    shell-quote's `quote()` function emits a `{ comment }` token as `#` followed by its text, which comments out the rest of the shell line, including the opening quote of any later string token. A line terminator (\n, \r, U+2028, U+2029) in that later string therefore ends the comment, and the rest of the string is parsed as shell input: `quote(['echo', 'ok', { comment: 'x' }, 'a\nid;#'])` runs `id` in sh, bash, dash, ksh and zsh. `parse()` emits a comment token for a `#` in the middle of a word (for example `http://example.com/#frag`), so callers that combine `parse()` output with another untrusted string, such as `quote(parse(untrustedCommand)

    • Update to 1.11.0
    • Update to 1.12.0-1
    • Update to 1.7.4+~1.7.1-1+deb13u2
    Published Updated
  6. CVE-2026-102414

    Medium · CVSS 6.3EPSS 0.34%Public exploitFix available

    pbkdf2 rehashes long passwords on every iteration, enabling denial of service

    pbkdf2 through 3.1.6 re-hashes passwords longer than the digest's block size on every iteration in its JavaScript fallback (lib/sync.js). A password longer than the block size (64 bytes, or 128 bytes for sha384 and sha512) is passed to HMAC as the key on every iteration, and HMAC hashes such keys in full each time. Cost is therefore O(iterations × password length), and a long password can block the event loop. The fallback is used by pbkdf2Sync and pbkdf2 on Node.js before 0.12, on Bun (1.0.0 through 1.1.34, and 1.2.6 and later), and on Deno 2.9.0 and later, because their native pbkdf2Sync fails the library's feature check. It is also used wh

    • Update to 3.1.7
    • Update to 3.1.7+~3.1.2-1
    Published Updated
  7. CVE-2026-102281

    High · CVSS 7.5EPSS 0.59%Fix available

    Nest: Remote process termination via a deeply nested microservice message pattern

    Nest is a framework for building scalable Node.js server-side applications. Prior to 11.2.4 and 12.0.2, a single message with a deeply nested object in its pattern can terminate a NestJS microservice using the TCP or RabbitMQ transport. ServerTCP#handleMessage and ServerRMQ#handleMessage pass a client-controlled non-string pattern to JSON.stringify to derive the handler lookup key; sufficiently deep nesting throws RangeError: Maximum call stack size exceeded, and the unhandled promise rejection terminates Node.js under its default behavior. An attacker who can reach the TCP port or publish to the consumed RabbitMQ queue or exchange can crash

    • Update to 11.2.4
    • Update to 12.0.2
    Published Updated
  8. CVE-2026-102278

    High · CVSS 7.5EPSS 0.46%Fix available

    brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.20, 2.1.6, 3.0.8, and 5.0.11, deeply nested brace groups cause expand_() to recurse once per nesting level at comma-member and single-set expansion sites, exhausting the native stack before output limits can apply and potentially terminating the Node.js process. expand_ performs uncontrolled recursion for nested brace alternatives and single-part sets. deeply nested brace groups supplied as an untrusted pattern. expand_ is affected. expand is affected. Comma members is affected. Single set is affected. native stack exhaustion during nes

    • Update to 1.1.20
    • Update to 2.1.6
    • Update to 2.1.7+~1.1.2-1
    • Update to 3.0.8
    • Update to 5.0.11
    Published Updated
  9. CVE-2026-102277

    Medium · CVSS 5.3EPSS 0.42%Fix available

    brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.

    • Update to 1.1.21
    • Update to 2.1.7
    • Update to 2.1.7+~1.1.2-1
    • Update to 3.0.9
    • Update to 5.0.12
    Published Updated
  10. CVE-2026-102276

    High · CVSS 7.5EPSS 0.46%Fix available

    brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.19, 2.1.5, 3.0.7, and 5.0.10, crafted brace patterns can exhaust the native stack in parseCommaParts because parseCommaParts recursively processes the remainder once per brace group and uses push.apply to pass every element of a very large comma-part array as a function argument. Patterns containing many comma-separated brace groups trigger the recursive path, while the large array triggers the argument-array path without deep recursion. These paths cause recursive and argument-array native stack exhaustion before max or maxLength can l

    • Update to 1.1.19
    • Update to 2.1.5
    • Update to 2.1.7+~1.1.2-1
    • Update to 3.0.7
    • Update to 5.0.10
    Published Updated
  11. CVE-2026-101916

    High · CVSS 7.4EPSS 0.21%Fix available

    @grpc/grpc-js: In certain configurations, getAuthContext can return unauthorized certificates as though they were authorized

    @grpc/grpc-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to 1.13.6 and 1.14.5, getAuthContext does not distinguish authorized from unauthorized peer certificates when server credentials set requireClientCertificate to false. When applications use the returned authentication context, they can treat an unauthorized certificate as authorized, causing improper authentication. @grpc/grpc-js-xds can reach this condition when RBAC authentication is enabled in affected configurations. This issue is fixed in version 1.14.5 and 1.13.6.

    • Update to 1.13.6
    • Update to 1.14.5
    Published Updated
  12. CVE-2026-101915

    Low · CVSS 3.7EPSS 0.25%Fix available

    @grpc/grpc-js: The server transmits some error messages thrown by method handlers to the client in status messages

    @grpc/grpc-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to 1.13.6 and 1.14.5, when an application method handler throws an uncaught error, the server includes its error message in the status message sent to the client. The thrown error message is transmitted to the client, causing sensitive information disclosure when the message contains sensitive data. This issue is fixed in versions 1.13.6 and 1.14.5.

    • Update to 1.13.6
    • Update to 1.14.5
    Published Updated
  13. CVE-2026-101914

    Medium · CVSS 6.5EPSS 0.25%Fix available

    @grpc/grpc-js: The exact path match matcher incorrectly only applies a prefix match for case-insensitive matches

    @grpc/grpc-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to 1.13.1 and 1.14.1, the exact path (method name) matcher used by RBAC performs a prefix comparison instead of an equality comparison when case-insensitive matching is enabled. If one service method name prefixes another and the methods have different access rules, a request for the longer method can match the shorter method's rule and cause incorrect authorization. This issue is fixed in versions 1.13.1 and 1.14.1.

    • Update to 1.13.1
    • Update to 1.14.1
    Published Updated
  14. CVE-2026-101913

    Medium · CVSS 6.3EPSS 0.39%Fix available

    ip-address: Address6.isLinkLocal() recognizes fe80::/64 rather than fe80::/10, allowing SSRF and trust-boundary bypass to on-link hosts

    ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.5.1, the Address6 isLinkLocal method in src/ipv6.ts recognizes only fe80::/64 instead of the complete fe80::/10 IPv6 link-local range. An attacker-controlled address elsewhere in fe80::/10 can therefore pass a trust-boundary check that relies on isLinkLocal. The same address is identified as link-local by getType and getScope, exposing the inconsistent classification. A successful bypass can reach an on-link host outside the intended trust boundary. This issue is fixed in version 10.5.1.

    • Update to 10.5.1
    • Update to 10.7.2-1
    Published Updated
  15. CVE-2026-55156

    Medium · CVSS 5.3EPSS 0.45%Fix available

    Token Optimizer MCP: Unauthenticated Path Traversal in Dashboard Session Log API Endpoints

    Token Optimizer MCP measures token savings per AI coding agent, optimizes context, and shares a live local knowledge graph across 16 CLI clients. Prior to version 5.1.0, the dashboard HTTP server in token-optimizer-mcp exposes /api/session-summary and /api/session-events with no authentication middleware — any network-accessible client can reach them without credentials. Both handlers concatenate the caller-supplied sessionId query parameter directly into a filesystem path via path.join, and Node.js normalizes .. segments at resolution time, allowing an unauthenticated attacker to read any .jsonl file reachable from the server's filesystem. T

    • Update to 5.1.0
    Published Updated
  16. CVE-2026-55157

    High · CVSS 8.4EPSS 0.88%Fix available

    Token Optimizer MCP: OS command injection in smart_user via username in get-user-info

    Token Optimizer MCP measures token savings per AI coding agent, optimizes context, and shares a live local knowledge graph across 16 CLI clients. Prior to version 5.1.0, token-optimizer-mcp is vulnerable to OS command injection in the smart_user tool. Any MCP client that can call the smart_user tool can execute arbitrary shell commands through the username argument of the get-user-info operation. The commands execute with the privileges of the user running the token-optimizer-mcp server. This issue has been patched in version 5.1.0.

    • Update to 5.1.0
    Published Updated
  17. CVE-2026-101912

    Medium · CVSS 6.3EPSS 0.37%Fix available

    ip-address: isInSubnet() and isHostInSubnet() compare addresses of different families as if they shared an address space, allowing an allowlist check to admit an address outside its range

    ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.7.1, the isInSubnet and isHostInSubnet methods in src/common.ts compare masked binary strings without validating that both operands use the same IP family. A cross-family containment check whose leading address bits match makes the masked strings compare equal even though IPv4 and IPv6 do not share an address space. An allowlist or denylist decision can therefore classify an address outside the intended range as contained. This issue is fixed in version 10.7.1.

    • Update to 10.7.1
    • Update to 10.7.2-1
    Published Updated
  18. CVE-2026-101911

    Medium · CVSS 6.3EPSS 0.38%Fix available

    ip-address: Address6 builds a parse diagnostic proportional to the input with no length bound, allowing a single long string to stall or crash the process

    ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.7.1, the Address6 constructor, Address6.isValid, and parse code in src/ipv6.ts accept unbounded strings and expand invalid characters through RE_BAD_CHARACTERS into large diagnostics. Material impact occurs only when an application accepts a very large attacker-controlled field and passes it to Address6 parsing without an earlier length bound. Common URL and header limits, and common body-parser defaults, generally constrain the effect; common defaults typically exclude 32 MiB fields. Megabyte-scale fields can cause a synchronous stall and

    • Update to 10.7.1
    • Update to 10.7.2-1
    Published Updated
  19. CVE-2026-101910

    Medium · CVSS 6.9EPSS 0.39%Fix available

    ip-address: no classifier recognizes the NAT64 local-use range 64:ff9b:1::/48, allowing SSRF and trust-boundary bypass

    ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. From 10.2.0 until 10.5.1, the Address6 isPrivate classifier in src/ipv6.ts does not recognize the NAT64 local-use range 64:ff9b:1::/48. Applications that combine isPrivate, isLoopback, and isLinkLocal for a trust-boundary decision can treat an internal IPv4 destination encoded through that range as external. Exploitation depends on a server network using an operator-selected NAT64 prefix within the local-use range. A successful bypass can cross the intended network trust boundary. This issue is fixed in version 10.5.1.

    • Update to 10.5.1
    • Update to 10.7.2-1
    Published Updated
  20. CVE-2026-101909

    High · CVSS 8.3EPSS 0.5%Fix available

    Axios: Prototype Pollution Gadget in axios toFormData Options

    Axios is a promise-based HTTP client for the browser and Node.js. From 0.28.0 until 0.34.0 and 1.15.1 until 1.20.0, ToFormData processes inherited serialization options and visitor properties supplied through prototype pollution. A separate same-process prototype-pollution flaw supplies inherited dots, indexes, metaTokens, maxDepth, visitor, or Blob values before object serialization. The inherited options alter toFormData field naming and data interpretation, maxDepth can force request failure, Blob changes value handling, and a polluted visitor can execute when an attacker already has the stronger ability to inject a function. Serialized fi

    • Update to 0.34.0
    • Update to 1.20.0
    • Update to 1.20.0-1
    Published Updated

Check your server

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

Check your server →