GitHub Advisoryadvisory · Packagist

GHSA-7x5c-vfhj-9628 Cockpit CMS has SQL Injection in MongoLite Aggregation Optimizer via toJsonExtractRaw()

HIGH Published 2026-03-17 Modified 2026-03-19 Official page ↗
Aliases
CVE-2026-31891
Ecosystem
Packagist
Packages
cockpit-hq/cockpit
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Weaknesses
CWE-89
Reviewed
2026-03-17

Affected packages

• Packagist cockpit-hq/cockpit: < 2.13.5 → fixed in 2.13.5

Description

Impact This is a SQL Injection vulnerability in the MongoLite Aggregation Optimizer. Any Cockpit CMS instance running version 2.13.4 or earlier with API access enabled is potentially affected. Who is impacted: • Any deployment where the `/api/content/aggregate/{model}` endpoint is publicly accessible or reachable by untrusted users. • Attackers in possession of a valid read-only API key (the lowest privilege level) can exploit this vulnerability — no admin access is required. What an attacker can do: • Inject arbitrary SQL via unsanitized field names in aggregation queries. • Bypass the `_state=1` published-content filter to access unpublished or restricted content. • Extract unauthorized data from the underlying SQLite content database. Confidentiality impact is High. Integrity and availability are not directly affected by this vulnerability. Patches This vulnerability has been patched in version 2.13.5. All users running Cockpit CMS version 2.13.4 or earlier are strongly advised to upgrade to 2.13.5 or later immediately. • https://github.com/Cockpit-HQ/Cockpit/releases/tag/2.13.5 The fix applies the same field-name sanitization introduced in v2.13.3 for `toJsonPath()` to the `toJsonExtractRaw()` method in `lib/MongoLite/Aggregation/Optimizer.php`, closing the injection vector in the Aggregation Optimizer.

Related

Alias · CVE (1)

  • CVE-2026-31891 Cockpit is a headless content management system. vulnerability

Weakness · CWE (1)

  • CWE-89 Improper Neutralization of Special Elements used in an SQL Command weakness

References