CVE-2026-71415
nicheMissing Authorization in Kirby CMS REST API Chunk Upload Enables Storage DoS
Kirby CMS, an open-source content management system, versions 5.0.0 through before 5.5.2 contains a missing-authorization flaw (CWE-862) in the REST API chunk upload handler, where the handler in src/Api/Upload.php persisted chunk data via processChunk() before running the upload authorization preflight in process(). An authenticated user who has panel access (access.panel enabled) but lacks files.create, files.replace, and user/users.update permissions can send requests with an Upload-Length header, leaving unfinished chunks stored in site/cache/.uploads for 24 hours. By repeating these requests, the attacker can consume temporary storage, prevent other users from uploading files, or block site logic from storing data, i.e., cause a denial of service, although final permission checks still keep unauthorized files out of the content and site/accounts directories. All Kirby deployments running 5.0.0 to 5.5.1 with the REST API enabled and such restricted panel users are affected. There is no known public proof-of-concept, the issue is not in the CISA KEV catalog, and EPSS estimates only about a 0.2% probability of exploitation within 30 days.
What to do: Upgrade Kirby to version 5.5.2 or later, which runs the upload authorization preflight before persisting chunks. Until upgraded, restrict or disable the REST API for users who do not need it and monitor site/cache/.uploads for accumulating orphaned chunks; note the impact is limited to temporary-storage exhaustion, not unauthorized file creation.
| Kirby CMS | >= 5.0.0 and < 5.5.2 (fixed in 5.5.2) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Kirby is an open-source content management system. From 5.0.0 until 5.5.2, Kirby's REST API chunk upload handler in src/Api/Upload.php did not run the relevant upload authorization preflight in Kirby\Api\Upload::process() before Kirby\Api\Upload::processChunk() persisted chunk data. An authenticated user with the access.panel permission enabled but with files.create, files.replace, and user/users.update permissions disabled could submit requests with an Upload-Length header and leave unfinished chunks in site/cache/.uploads for 24 hours. Repeating this process could consume attacker-controlled temporary storage, prevent other users from uploading files, or prevent site logic from storing data, although final permission checks still prevented unauthorized files from reaching the content or site/accounts directories. This issue is fixed in version 5.5.2.
- Weakness
- CWE-862
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/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 news0 stories
No ingested article mentions this CVE yet.