Description
Nuxt Content is the file-based CMS for Nuxt applications, powered by Markdown and Vue components. From 3.0.0 until 3.15.2, the unauthenticated POST /__nuxt_content/:collection/query endpoint accepts an attacker-controlled sql field in src/runtime/api/query.post.ts and permits expensive SQLite expressions. Version 3.0.0 performed no query validation; in affected releases using assertSafeQuery in src/runtime/internal/security.ts, the reported validation gap rejects a short list of SQL command keywords in WHERE clauses but permits function calls including randomblob(), zeroblob(), hex(), and length(). The query reaches the synchronous better-sqlite3 sink in src/runtime/internal/database.server.ts, allowing a single remote request to consume substantial CPU and memory while blocking the Node.js event loop and all concurrent request handling. Fully static prerendered deployments that do not expose the server endpoint are not affected. This issue is fixed in version 3.15.2.
Published: 2026-11-06
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: Denial of Service via CPU and memory exhaustion
Action: Patch Immediately
AI Analysis

Impact

Nuxt Content’s public POST /__nuxt_content/:collection/query endpoint permits an attacker to supply arbitrary SQLite queries through an sql field. The absence of comprehensive validation allows the use of expensive SQLite functions such as randomblob(), zeroblob(), hex(), and length(). Executing such queries consumes significant CPU time and memory, blocking the Node.js event loop and preventing all concurrent requests, thereby creating a denial‑of‑service condition.

Affected Systems

Versions 3.0.0 through 3.15.2 of the Nuxt Content package are vulnerable when the query endpoint is exposed. Deployments that are fully static and do not expose the server‑side endpoint are not impacted.

Risk and Exploitability

With a CVSS score of 7.5 and no mitigation in the affected releases, the vulnerability presents a moderate‑to‑high risk. It is unauthenticated and reachable over HTTP, so an attacker can trigger the DoS with a single request. The EPSS score is unavailable, and the vulnerability is not listed in the CISA KEV catalog, but the severity and ease of exploitation still warrant immediate action.

Generated by OpenCVE AI on November 6, 2026 at 18:55 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Nuxt Content to v3.15.2 or later, which removes the query validation flaw.
  • If an upgrade is delayed, disable or protect the POST /__nuxt_content/:collection/query endpoint with proper authentication or by removing it from the routes exposed to the internet.
  • Implement additional query validation that rejects costly SQLite functions or limits query execution time and memory usage within the server configuration.

Generated by OpenCVE AI on November 6, 2026 at 18:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 06 Nov 2026 17:45:00 +0000

Type Values Removed Values Added
Description Nuxt Content is the file-based CMS for Nuxt applications, powered by Markdown and Vue components. From 3.0.0 until 3.15.2, the unauthenticated POST /__nuxt_content/:collection/query endpoint accepts an attacker-controlled sql field in src/runtime/api/query.post.ts and permits expensive SQLite expressions. Version 3.0.0 performed no query validation; in affected releases using assertSafeQuery in src/runtime/internal/security.ts, the reported validation gap rejects a short list of SQL command keywords in WHERE clauses but permits function calls including randomblob(), zeroblob(), hex(), and length(). The query reaches the synchronous better-sqlite3 sink in src/runtime/internal/database.server.ts, allowing a single remote request to consume substantial CPU and memory while blocking the Node.js event loop and all concurrent request handling. Fully static prerendered deployments that do not expose the server endpoint are not affected. This issue is fixed in version 3.15.2.
Title Nuxt Content: Unauthenticated SQLite Function DoS via Content Query API
Weaknesses CWE-400
CWE-770
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-06T17:40:05.114Z

Reserved: 2026-09-29T15:56:02.101Z

Link: CVE-2026-102650

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-06T18:17:37.333

Modified: 2026-11-06T18:17:37.333

Link: CVE-2026-102650

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-06T19:00:12Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-770

    Allocation of Resources Without Limits or Throttling