Summary
CVE-2026-75594 is a path traversal vulnerability (CWE-22) in Kirby CMS’s media handling that allows an unauthenticated remote attacker to access image files and detect the existence of JSON files outside the site’s intended media directory. It affects Kirby versions prior to 4.9.5 and 5.0.0 through 5.5.1, and carries a CVSS score of 8.2 (High).
Technical details
- Root cause:
KirbyCmsMedia::thumb()appends attacker-supplied filenames to a validated parent media directory without rejecting path traversal sequences; a related weakness exists in thefile::versionpath handling inAsset, which also accepted../sequences. - Trigger conditions: exploitation requires a server configuration that permits encoded slash characters in URLs — nginx, PHP’s built-in development server, or Apache with
AllowEncodedSlashesenabled. Apache’s default configuration is not affected. - Attack vector: network, unauthenticated, low complexity — an attacker submits thumbnail/media requests containing encoded slash (
%2f) sequences to traverse outside the parent media directory. - Impact: disclosure of image files stored outside the intended media root, and the ability to infer whether arbitrary
.jsonfiles exist on the server via differences in server responses; a crafted job file could also cause an unintended image to be returned.
Affected software
- Kirby CMS versions prior to 4.9.5
- Kirby CMS versions 5.0.0 through 5.5.1 (inclusive)
Severity
- CVSS v4.0 Base Score: 8.2 (High)
- 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
Mitigation and recommended actions
- Immediate: upgrade to Kirby CMS 4.9.5 (for 4.x deployments) or 5.5.2 (for 5.x deployments) or later, where
Media::thumb()rejects filenames containing path traversal sequences and theAssetclass/asset()helper reject../sequences. - If patching is not immediately possible: avoid running Kirby behind server configurations that allow encoded slashes (do not enable
AllowEncodedSlasheson Apache; review nginx and PHP built-in server deployments), and restrict direct access to the media handler where feasible until the update can be applied.
How IONIX identifies potentially affected assets
IONIX matches the following signal against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Page title:
Kirby Panel

