High

Kirby: File upload permissions are not checked during processing of chunk data

  • Disclosed: 31.08.2026
  • Updated: 11.10.2026 10:22

TL;DR

This vulnerability affects all Kirby sites where users of a particular role have access to the REST API (access.panel permission is enabled) but no permission to upload any kind of file (files.create, files.replace and user/users.update permissions are all disabled).

It was possible to fill up the temporary directory for chunked uploads with unfinished chunks even as a user without any upload permission.

This vulnerability is of high severity for affected sites.

Your Kirby sites are not affected if you intend all users of your site to be able to upload files. The vulnerability can only be exploited by authenticated users. It was not possible to bypass the actual permission checks for any files that end up in the content or site/accounts folders.


Introduction

Missing authorization allows authenticated users to perform actions they are not intended to have access to.

The effects of missing authorization can include unauthorized access to sensitive information as well as unauthorized changes to content or system information.

Affected components

Kirby's REST API provides routes to upload files, specifically to create content files, replace existing content files and to create and replace user avatars.

Each upload route takes either full file upload requests or chunked upload requests that can be continued in subsequent requests. During a chunked upload, the incomplete state of the uploaded file is stored in a temporary directory until the last chunk completes the file. At this time, the final permission and business logic checks are performed before the complete file is moved to its final destination.

Impact

In affected releases, the chunk upload handler did not check for the user's file upload permissions before storing incomplete chunk data in the temporary directory.

This allowed attackers without upload permissions to upload multiple large files in chunks. If the final chunk was never provided, Kirby would keep the incomplete files for 24 hours. This could cause attacker-controlled storage consumption until the temporary files were automatically cleaned up or manually removed, potentially preventing other users from uploading files, or site logic from storing data.

Patches

The problem has been patched in Kirby 5.5.2. Please update this or a later version to fix the vulnerability.

In all of the mentioned releases, we have added preflight checks to the upload chunk processor that verify the relevant system permission before storing the chunk data in the temporary directory.

Credits

Thanks to @alcls01111 for responsibly reporting the identified issue.

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Composer package getkirby/cms >= 5.0.0, < 5.5.2 5.5.2

References

CVSS score -
CVSS 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
Weakness (CWE)
CWE-862
Platform
Composer
Package
getkirby/cms
Disclosed
31.08.2026
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-67mx-6wf2-92xp - CC BY 4.0

Vulnerability history: getkirby/cms

All published vulnerabilities of this package (Composer package), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (51) in the archive
Total entries
51
First → latest
12.2020 09.2026
Without a fix
2
Exploited in attacks
0

Severity breakdown

  • Critical 1
  • High 19
  • Medium 30
  • Low 1

Disclosures per year

  1. 2020: 1
  2. 2021: 5
  3. 2022: 7
  4. 2023: 5
  5. 2024: 4
  6. 2025: 3
  7. 2026: 26
Severity:
  1. Kirby: File upload permissions are not checked during processing of chunk data this entry
    High CVE-2026-71415 >= 5.0.0, < 5.5.2 5.5.2
  2. High CVE-2026-54005 < 4.9.4, >= 5.0.0-alpha.1, < 5.4.4 4.9.4, 5.4.4
  3. Critical CVE-2026-54003 < 4.9.4, >= 5.0.0-alpha.1, < 5.4.4 4.9.4, 5.4.4
  4. High CVE-2026-54002 < 4.9.4, >= 5.0.0-alpha.1, < 5.4.4 4.9.4, 5.4.4
  5. High CVE-2026-49276 < 4.9.4, >= 5.0.0-alpha.1, < 5.4.4 4.9.4, 5.4.4
  6. High CVE-2026-44174 < 4.9.1, >= 5.0.0, < 5.4.1 4.9.1, 5.4.1
  7. High CVE-2026-42069 < 4.9.0, >= 5.0.0, < 5.4.0 4.9.0, 5.4.0
  8. High · 8.1 CVE-2026-34587 < 4.9.0, >= 5.0.0, < 5.4.0 4.9.0, 5.4.0
  9. High · 8.1 CVE-2024-41964 < 3.6.6.6, >= 3.7.0, < 3.7.5.5, >= 3.8.0, < 3.8.4.4, >= 3.9.0, < 3.9.8.2, >= 3.10.0, < 3.10.1.1, >= 4.0.0, < 4.3.1 3.6.6.6, 3.7.5.5, 3.8.4.4, 3.9.8.2, 3.10.1.1, 4.3.1
  10. High · 7.1 CVE-2023-38488 < 3.5.8.3, >= 3.6.0, < 3.6.6.3, >= 3.7.0, < 3.7.5.2, >= 3.8.0, < 3.8.4.1, >= 3.9.0, < 3.9.6 3.5.8.3, 3.6.6.3, 3.7.5.2, 3.8.4.1, 3.9.6
  11. High · 7.3 CVE-2023-38489 < 3.5.8.3, >= 3.6.0, < 3.6.6.3, >= 3.7.0, < 3.7.5.2, >= 3.8.0, < 3.8.4.1, >= 3.9.0, < 3.9.6 3.5.8.3, 3.6.6.3, 3.7.5.2, 3.8.4.1, 3.9.6
  12. High · 7.1 ghsa-rv3r-vqjj-8c76 >= 3.5.7, < 3.5.8.1, >= 3.6.0, < 3.6.6.1, >= 3.7.0, < 3.7.4 3.5.8.1, 3.6.6.1, 3.7.4

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.