Kirby is an open-source content management system. Kirby's user permissions control which user role is allowed to perform specific actions to content models in the CMS. These permissions are defined for each role in the user blueprint (site/blueprints/users/...). It is also possible to customize the permissions for each target model in the model blueprints (such as in site/blueprints/pages/...) using the options feature. The permissions and options together control the authorization of user actions. For pages, Kirby provides the pages.create and pages.changeStatus permissions (among others). Prior to versions 4.9.0 and 5.4.0, Kirby checked these permissions independently and only for the respective action. However the changeStatus permission didn't take effect on page creation. New pages are created as drafts by default and need to be published by changing the page status of an existing page draft. This is ensured when the page is created via the Kirby Panel. However the REST API allows to override the isDraft flag when creating a new page. This allowed authenticated attackers with the pages.create permission to immediately create published pages, bypassing the normal editorial workflow. The problem has been patched in Kirby 4.9.0 and Kirby 5.4.0. Kirby has added a check to the page creation rules that ensures that users without the pages.changeStatus permission cannot create published pages, only page drafts.
CVE-2026-40099
This medium-severity CVE scores 6.5 under NVD CVSS v3. EPSS exploit probability: 0.0%, top 92% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).
- Lower severity and no public exploit yet
No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.
- CVSS v3
- 6.5
- EG Score
- 6.5(medium)
- EPSS
- 19.4%
- KEV
- Not listed
Published
April 24, 2026
Last Modified
April 27, 2026
Advisory Details (3)
Auto-updated Jun 14, 2026Page creation API bypasses `changeStatus` permission check via unfiltered `isDraft` parameter · Advisory · getkirby/kirby · GitHub
https://github.com/getkirby/kirby/security/advisories/GHSA-w942-j9r6-hr6r5.4.0
Patch available: getkirby/kirby 5.4.0
https://github.com/getkirby/kirby/releases/tag/5.4.04.9.0
Patch available: getkirby/kirby 4.9.0
https://github.com/getkirby/kirby/releases/tag/4.9.0Affected Packages
(1 across 1 ecosystem)
Packagist(1)
| Package | Vulnerable range | Fixed in | Dependents |
|---|---|---|---|
| getkirby/cms | 5.0.0 ... 5.3.3 (21 versions) | 5.4.0 | — |
Weakness Classification(1)
MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.
Related CVEs(same CWE)
Same CWE
10 shownCWE-863
Frequently asked(5)
What is CVE-2026-40099?
When was CVE-2026-40099 disclosed?
Is CVE-2026-40099 actively exploited?
What is the CVSS score of CVE-2026-40099?
How do I remediate CVE-2026-40099?
Dependency Blast Radius
See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-40099
Is Your Infrastructure Affected by CVE-2026-40099?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.