p PatchFirst

PatchFirst · Latest vulnerabilities

Node.js stack vulnerabilities · Page 6

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

  1. CVE-2026-113650

    Medium · CVSS 5.3EPSS 0.4%Fix available

    ApostropheCMS sanitize-html: unbounded recursion when re-sanitizing the fallback of a discarded iframe (stack overflow, nestingLimit not enforced)

    ApostropheCMS is an open-source Node.js content management system. In sanitize-html 2.18.0, when an <iframe> is not allowed and disallowedTagsMode is 'discard' (the defaults), its raw-text content is re-sanitized by a recursive call to sanitizeHtml(text, options). The recursion has no bound and starts each nested call with a fresh state. This vulnerability is fixed in 2.18.1.

    • Update to 2.18.1
    Published Updated
  2. CVE-2026-113648

    Low · CVSS 3.1EPSS 0.33%Fix available

    ApostropheCMS: Missing Authentication in `cleanExport` Route

    ApostropheCMS is an open-source Node.js content management system. Prior to 3.7.1 of the import-export module, the API endpoint POST /api/v1/@apostrophecms/import-export/clean-export in @apostrophecms/import-export lacks authentication and authorization checks. Any client—including unauthenticated anonymous users who have obtained the standard CSRF cookie from visiting the site—can directly invoke this route and trigger the underlying self.cleanExport(req) method. This issue is fixed in version 3.7.1.

    • Update to 3.7.1
    Published Updated
  3. CVE-2026-112958

    Medium · CVSS 5.4EPSS 0.3%Public exploitFix available

    ApostropheCMS: Stored XSS via Unescaped Widget Style Attribute Serialization

    ApostropheCMS is an open-source Node.js content management system. Prior to 4.34.0, a project-defined free-form widget style field can carry an editor-controlled quote into an inline style attribute because the wrapper serializer does not apply HTML-attribute encoding. The quote can terminate the style attribute and inject executable attributes when published content, or an affected draft viewed by a higher-privileged user, is rendered. This issue is fixed in version 4.34.0.

    • Update to 4.34.0
    Published Updated
  4. CVE-2026-112957

    Medium · CVSS 4.3EPSS 0.31%Public exploitFix available

    ApostropheCMS: GET /api/v1/@apostrophecms/page/:id bypasses viewRole restriction and exposes viewPermission-gated fields to lower-privileged users

    ApostropheCMS is an open-source Node.js content management system. Prior to 4.34.0, the getOne REST endpoint for pages does not apply viewRole type-level restrictions or viewPermission field-level redaction. An editor-level user who knows a document _id can read the full content of admin-only pages and their privileged fields, while the getAll endpoint correctly enforces both restrictions. This issue is fixed in version 4.34.0.

    • Update to 4.34.0
    Published Updated
  5. CVE-2026-112956

    Medium · CVSS 6.5EPSS 0.34%Fix available

    ApostropheCMS: Archive duplicate continuation lets contributors overwrite published content

    ApostropheCMS is an open-source Node.js content management system. Prior to 3.7.1 of the import-export module, duplicate-import continuation accepts client-controlled replacement choices without binding them to a user-owned server-side analysis or authorizing the canonical target. On an import-enabled localized type, a contributor with draft editing authority can cross the publication boundary by selecting a published document for replacement, although the current assessment is based on remediation review rather than a repeated end-to-end reproduction. This issue is fixed in version 3.7.1.

    • Update to 3.7.1
    Published Updated
  6. CVE-2026-112955

    Medium · CVSS 6.5EPSS 0.53%Fix available

    ApostropheCMS: Import archives can exhaust server storage and deny service

    ApostropheCMS is an open-source Node.js content management system. Prior to 3.7.1 of the import-export module, an authenticated importer can submit archives whose decompressed bytes, entry count, and entry sizes are not bounded before document-type authorization, and extraction or parsing failures can leave staging and extracted artifacts without unconditional cleanup. The already-hardened pre-authentication and write-error paths are separate, and current end-to-end denial-of-service impact from this residual path remains subject to maintainer validation. This issue is fixed in version 3.7.1.

    • Update to 3.7.1
    Published Updated
  7. CVE-2026-112954

    Medium · CVSS 5.3EPSS 0.44%Public exploitFix available

    ApostropheCMS: Unauthenticated publicApiProjection bypass via search and sort query builders in the public REST API

    ApostropheCMS is an open-source Node.js content management system. Prior to 4.34.0, a public REST API type that uses publicApiProjection can expose excluded searchable or sortable field information through search membership and sort ordering oracles. Returned fields remain filtered by the projection, so the issue permits targeted inference about hidden values rather than an unrestricted field dump. This issue is fixed in version 4.34.0.

    • Update to 4.34.0
    Published Updated
  8. CVE-2026-112953

    Medium · CVSS 6EPSS 0.56%Public exploitFix available

    ApostropheCMS: Exposure of Sensitive Information via predictable export filenames

    ApostropheCMS is an open-source Node.js content management system. Prior to 3.7.1 of the import-export module, predictable export archive filenames allow an unauthenticated requester to download another user's export from publicly readable export storage before the archive expires or is removed. A user with export permission must first create the archive, and sites with exports disabled, private upload storage, or authenticated upload delivery are not exposed through this network-download path. This issue is fixed in version 3.7.1.

    • Update to 3.7.1
    Published Updated
  9. CVE-2026-112952

    Medium · CVSS 4.3EPSS 0.33%Public exploitFix available

    ApostropheCMS: POST /api/v1/@apostrophecms/doc/slugTaken discloses existence of private/admin-only content to any authenticated user

    ApostropheCMS is an open-source Node.js content management system. Prior to 4.34.0, 'POST /api/v1/@apostrophecms/doc/slugTaken' with body { "slug": "target-slug" } returns a boolean indicating whether a slug is in use across all document types and visibility levels, with no permission or type filter. Any logged-in user (including editors) can enumerate the slug space of private pages, drafts, and archived content. This issue is fixed in version 4.34.0.

    • Update to 4.34.0
    Published Updated
  10. CVE-2026-112951

    Medium · CVSS 5.4EPSS 0.3%Public exploitFix available

    ApostropheCMS: Color field validation bypass allows stored XSS via HTML appended after rgb()/hsl() prefix

    ApostropheCMS is an open-source Node.js content management system. Prior to 4.34.0, the color field accepts trailing content after a valid rgb() or hsl() prefix because its TinyColor validation does not require the entire value to match a color. An authenticated user with edit rights can store arbitrary HTML after a valid color prefix. When the stored value is rendered, the payload executes, resulting in stored XSS. This issue is fixed in version 4.34.0.

    • Update to 4.34.0
    Published Updated
  11. CVE-2026-112950

    Medium · CVSS 5.9EPSS 0.46%Public exploitFix available

    Vitest: Windows backslash traversal bypasses the @vitest/mocker redirect allowlist fix

    Vitest is a Vite-native testing framework for JavaScript and TypeScript projects. From 4.1.11 until 4.1.12 and 5.0.3, isFileLoadingAllowed and the filesystem read interpret backslashes differently on Windows in packages/mocker/src/node/interceptorPlugin.ts. When a client can reach the Vite dev server on Windows and register a redirect mock containing backslash traversal, POSIX joining preserves a Windows backslash traversal that the later filesystem read interprets as a path separator, so the client can read a file outside server.fs.allow that the Vitest process can access. This issue is fixed in versions 4.1.12 and 5.0.3.

    • Update to 4.1.12
    • Update to 5.0.3
    Published Updated
  12. CVE-2026-112949

    Medium · CVSS 4.7EPSS 0.34%Public exploitFix available

    Vitest: Code injection via unauthenticated manual mock registration

    Vitest is a Vite-native testing framework for JavaScript and TypeScript projects. From 2.1.0-beta.7 until 4.1.12 and 5.0.3, an unauthenticated non-browser WebSocket client that can reach a development server using interceptorPlugin can register a manual mock whose attacker-controlled url createManualModuleSource inserts unescaped into generated module source. When the developer browser loads the affected module, attacker-controlled JavaScript executes on the development-server origin. This issue is fixed in versions 4.1.12 and 5.0.3.

    • Update to 4.1.12
    • Update to 5.0.3
    Published Updated
  13. CVE-2026-112948

    Medium · CVSS 6.5EPSS 0.4%Fix available

    Vitest: Servers misapply `server.fs.deny`, serving `.env`, private keys, `.git`, and the API token file

    Vitest is a testing framework powered by Vite. From 5.0.0-beta.6 until 5.0.5, Vitest dev servers can misapply server.fs.deny because project servers replace Vite's defaults and the root server adds .vitest-secret-token after Vite compiles its matcher. An attacker who can reach an affected UI, Browser Mode, or API server can read denied project files or the fallback API token at node_modules/.vitest/.vitest-secret-token, and Browser Mode with test.projects can expose JavaScript-compatible .env values through a malicious website. This issue is fixed in version 5.0.5.

    • Update to 1.3.0
    • Update to 5.0.5
    Published Updated
  14. CVE-2026-112947

    Medium · CVSS 6.3EPSS 0.5%Public exploitFix available

    Vite: First 4 bytes of files outside of `server.fs` setting is exposed by `?vite-wasm-instance`

    Vite is a frontend tooling framework for JavaScript. From 8.2.0 until 8.2.4 and 8.3.3, the first 4 bytes of files outside of server.fs setting can be returned to the browser by a request containing ?vite-wasm-instance. Requests containing the ?vite-wasm-instance query are handled by the internal Wasm plugin's load hook. The hook removes the query and reads the resulting path directly from disk, but the server.fs checks were not applied. After reading the file, Vite attempts to parse it as WebAssembly. When that parse fails, Node and deno throws an error that contains the first 4 bytes of the file. This vulnerability is fixed in 8.2.4 and 8.3.

    • Update to 1.1.0
    • Update to 8.2.4
    • Update to 8.3.3
    Published Updated
  15. CVE-2026-112946

    Medium · CVSS 6.3EPSS 0.85%Public exploitFix available

    Vite: Files outside `server.fs.allow` could be served when project paths match system paths on non-Windows machine

    Vite is a frontend tooling framework for JavaScript. Prior to 6.4.4, 7.3.7, 8.1.6, 8.2.4, and 8.3.3, import analysis can record a root-relative browser URL in safeModulePaths instead of the cleaned resolved module identifier. On a network-accessible, non-Windows development server, an imported project file whose URL matches an absolute host path can authorize a later raw-filesystem request for that host file, provided server.fs.deny does not block it. The request can disclose the matching file outside the project root, but it does not allow arbitrary path traversal because the host path must correspond to a project-relative URL authorized by

    • Update to 1.1.0
    • Update to 6.4.4
    • Update to 7.3.7
    • Update to 8.1.6
    • Update to 8.2.4
    • Update to 8.3.3
    Published Updated
  16. CVE-2026-112945

    Low · CVSS 2.1EPSS 0.56%Public exploitFix available

    Vite: Cross origin script execution through Vite custom middleware

    Vite is a frontend tooling framework for JavaScript. Prior to 6.4.4, 7.3.7, 8.1.6, 8.2.4, and 8.3.3, applications using custom middleware are vulnerable when they pass an unchanged browser request URL to server.transformIndexHtml. getHtmlFilename uses the query-bearing request URL to resolve an existing local file while preserving attacker-supplied leading slashes in the generated proxy module URL. If the transformed HTML contains an inline module script and a victim browser loads the crafted development-server page, the leading double slash makes the browser fetch and execute an attacker-controlled module in the Vite-served page. This execut

    • Update to 1.1.0
    • Update to 6.4.4
    • Update to 7.3.7
    • Update to 8.1.6
    • Update to 8.2.4
    • Update to 8.3.3
    Published Updated
  17. CVE-2026-112944

    Medium · CVSS 6.3EPSS 0.7%Fix available

    launch-editor: Editor CLI flag misinterpretation causing arbitrary command execution for some editors

    launch-editor allows users to open files with line numbers in editor from Node.js. Prior to 2.14.2, when an attacker can create a filesystem entry beginning with plus or minus in the working directory, an affected editor is selected, and the path can remain relative or is converted to a relative WSL path, launchEditor forwards the path without forcing it to be interpreted as a positional filename. Editor option parsing then treats the attacker-controlled filename as a command-line flag, which can cause unintended file overwrite or arbitrary command execution by the selected editor. The affected editors are Vim and gVim, MacVim, Emacs and Emac

    • Update to 1.1.0
    • Update to 2.14.2
    • Update to 6.4.4
    • Update to 7.3.7
    • Update to 8.1.6
    • Update to 8.2.4
    • Update to 8.3.3
    Published Updated
  18. CVE-2026-112943

    Medium · CVSS 6.3EPSS 0.41%Fix available

    launch-editor: escapeCmdArgs() omits % escaping on Windows

    launch-editor allows users to open files with line numbers in editor from Node.js. Prior to 2.14.2, launch-editor did not escape % on Windows when passing an argument to cmd. When an environment variable contained a malicious value, it was possible that that content to be executed. This vulnerability is fixed in 2.14.2.

    • Update to 1.1.0
    • Update to 2.14.2
    • Update to 6.4.4
    • Update to 7.3.7
    • Update to 8.1.6
    • Update to 8.2.4
    • Update to 8.3.3
    Published Updated
  19. CVE-2026-112942

    High · CVSS 7.5EPSS 1.34%Fix available

    launch-editor: `fs.existsSync()` existence check can be bypassed on Windows

    launch-editor allows users to open files with line numbers in editor from Node.js. Prior to 2.14.2, launch-editor-middleware processes an attacker-controlled Windows file argument where the file argument ends in a parent-directory component plus a line-and-column suffix: the path is resolved while the suffix is still present, and launch-editor removes the suffix before its existsSync check, leaving the existing parent directory for existsSync and allowing the attacker-controlled file argument to pass filename existence validation without requiring the malicious filename to exist. The bypass can lead to OS command injection when combined with

    • Update to 1.1.0
    • Update to 2.14.2
    • Update to 6.4.4
    • Update to 7.3.7
    • Update to 8.1.6
    • Update to 8.2.4
    • Update to 8.3.3
    Published Updated
  20. CVE-2026-111752

    High · CVSS 8.2Fix available

    @angular/router: Denial of Service via Unmatched Empty-Path Outlet Route Matching in Server-Side Rendering (SSR)

    A denial of service (DoS) vulnerability was identified in `@angular/router` when Server-Side Rendering (SSR) is enabled on Node.js (V8). During route recognition, `@angular/router` fails to validate whether an auxiliary outlet segment in the URL matches a route configured for that specific outlet name. Because unconfigured empty-path outlet groups (such as `a:/()`, `x:/(...)`, or `///(...)`) are not rejected during matching, the router repeatedly re-evaluates the route configuration against each arbitrary outlet segment provided in the URL. When a request URL contains multiple arbitrary empty-path outlet segments, this improper matching for

    • Update to 20.3.33
    • Update to 21.2.25
    • Update to 22.2.1
    Published Updated

Check your server

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

Check your server →