ZeroHour

CVE-2026-92591

large

Unauthenticated Secret Disclosure in Craft CMS Installer During Database Outages

CVSS 4.0
8.2 high
EPSS
Published
()
Modified
AI analysis

Craft CMS 5.0.0 through 5.10.12 treats a database connection failure as meaning Craft is not installed, which makes anonymous installer actions — including install/validate-site — reachable on already-installed production sites whenever PHP is still serving requests but the configured MySQL endpoint is unreachable. The installer accepts a site name that is serialized through Site::getName() and expanded via App::env(), so an unauthenticated attacker can submit a predictable variable name such as CRAFT_SECURITY_KEY and receive its value. A successful attempt discloses Craft secrets, process environment variables, $_SERVER entries, or PHP constants, potentially including the application security key, database credentials, or API keys. Exploitation requires an independently occurring database outage plus a guest session cookie and matching CSRF token obtained beforehand and still valid during the outage, so every Craft 5.x site running 5.0.0–5.10.12 carries the flaw but only those hit by an outage in such a window are concretely exposed. There is no public proof-of-concept, no known in-the-wild exploitation, and the issue is not listed in CISA KEV; it is fixed in 5.10.13.

What to do: Upgrade to Craft CMS 5.10.13 or later. Where immediate upgrade is not possible, treat any database outage as a security window: invalidate guest sessions and rotate CSRF state after outages, and block unauthenticated access to installer actions such as install/validate-site at the web server or application firewall. After any outage, review access logs for requests to installer endpoints and rotate the security key and any database or API credentials that could have been exposed.

Affected
Craft CMS (Pixel & Tonic) Craft CMS5.0.0 through 5.10.12 (fixed in 5.10.13)
Estimated exposure
largetens of thousands of Craft CMS 5.x sites (order of magnitude from public CMS market-share surveys) — Craft CMS 5.x is the current major release running on a large share of the tens of thousands of live Craft CMS sites reported by public web-technology surveys, though the number exploitable at any given moment is far smaller because an…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Craft CMS 5.0.0 through 5.10.12 treats a database connection failure as meaning that Craft is not installed, which makes anonymous installer actions — including install/validate-site — reachable on an installed production site whenever PHP remains available but the configured MySQL endpoint does not. The action accepts a site name, serializes it through Site::getName(), and expands ${NAME} expressions using App::env(). An unauthenticated attacker who obtained a guest session cookie and matching CSRF token before the outage and whose session remains valid during it can submit a predictable variable name (for example Craft's conventional CRAFT_SECURITY_KEY) and receive its value, disclosing Craft secrets, process environment variables, $_SERVER entries, or PHP constants such as the security key, database credentials, or API keys. The issue requires an independently occurring database outage; the vulnerability itself provides no way to induce it. Fixed in 5.10.13.

Weakness
CWE-636
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.