ZeroHour

CVE-2026-75594

large

Unauthenticated path traversal in Kirby CMS media thumb handler

CVSS 4.0
8.2 high
EPSS
<1%p42
Published
()
Modified
AI analysis

Kirby, an open-source content management system, is affected by a path traversal (CWE-22) in its media handler: Media::thumb() in src/Cms/Media.php appends a user-controlled filename to an already-validated parent media directory, and the related file::version path in src/Filesystem/Asset.php also accepts ../ sequences beyond the intended index root. On nginx, PHP's built-in server, or Apache with AllowEncodedSlashes enabled, a remote, unauthenticated attacker can submit encoded slashes such as %2f in the filename, which are decoded after directory validation and let the request traverse outside the parent media directory. By comparing responses for existing and nonexistent thumbnail configurations, the attacker can determine whether arbitrary .json files exist, and a .json file containing a valid filename key can cause the referenced image to be returned and the job file to be deleted, yielding limited information disclosure and file deletion. Sites running Kirby 4.x before 4.9.5 or 5.x before 5.5.2 on the affected server configurations are exposed (CVSS 4.0: 8.2, high). No public proof-of-concept, CISA KEV listing, or confirmed in-the-wild exploitation is known; EPSS currently puts the 30-day exploitation probability at about 0.5%.

What to do: Upgrade to Kirby 4.9.5 on the 4.x line or 5.5.2 on the 5.x line. If patching is delayed, disable AllowEncodedSlashes on Apache or block %2f-encoded slashes in media thumb and file::version URLs at a reverse proxy/WAF, noting that only nginx, PHP built-in server, and Apache-with-AllowEncodedSlashes configurations are described as exposed. Check media directories for missing or altered thumbnail job (.json) files, which would indicate probing or exploitation of this flaw.

Affected
Kirby CMS (4.x release line)all versions prior to 4.9.5
Kirby CMS (5.x release line)all versions prior to 5.5.2
Estimated exposure
largeon the order of tens of thousands of deployed Kirby sites — Kirby does not publish active-install counts like WordPress plugin marketplaces, so this estimate is based on its long-standing, widespread adoption among agencies and freelancers as a self-hosted open-source CMS, plausibly placing…

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

Description

Kirby is an open-source content management system. Prior to 4.9.5 and 5.5.2, depending on the release line, Kirby's media handler in src/Cms/Media.php allowed Kirby\Cms\Media::thumb() to append a path-bearing filename to a validated parent media directory. On nginx, PHP's built-in server, or Apache with AllowEncodedSlashes enabled, a remote attacker could submit encoded slash characters such as %2f in the filename and traverse outside the parent's media directory. Differences between responses for existing and nonexistent thumbnail configurations disclosed whether an arbitrary .json file existed, and a .json file containing a valid filename key could cause the referenced image to be returned and the job file to be deleted. The related file::version path in src/Filesystem/Asset.php also accepted ../ sequences outside the intended index root. This issue is fixed in versions 4.9.5 and 5.5.2.

Weakness
CWE-22
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.