{"id":"GHSA-6gqr-mx34-wh8r","summary":"Kirby is vulnerable to authorization bypass during page, file and user creation via blueprint injection","details":"### TL;DR\n\nThis vulnerability affects all Kirby sites where users of a particular role have no permission to create pages, files or users (`pages.create`, `files.create` or `users.create` permission is disabled). This can be due to configuration in the user blueprint(s), via `options` in the model blueprint(s) or via a combination of both settings.\n\n**This vulnerability is of high severity for affected sites.**\n\nDevelopers' Kirby sites are *not* affected if they intend all users of their site to be able to create pages, files and users. The vulnerability can only be exploited by authenticated users.\n\n----\n\n### Introduction\n\nAn authorization bypass allows authenticated users to perform actions they should not be allowed to perform based on their configured permissions, thereby causing a privilege escalation.\n\nThe effects of an authorization bypass can include unauthorized access to sensitive information as well as unauthorized changes to content or system information.\n\n### Impact\n\nKirby'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.\n\nKirby provides the `pages.create`, `files.create` and `users.create` permissions (among others). These permissions can again be set in the user blueprint and/or in the blueprint of the target model via `options`. In affected releases, Kirby allowed to override the `options` during the creation of pages, files and users by injecting custom dynamic blueprint configuration into the model data. The injected `options` could include `'create' =\u003e true`, which then caused an override of the permissions and options configured by the site developer in the user and model blueprints.\n\n### Patches\n\nThe problem has been patched in [Kirby 4.9.0](https://github.com/getkirby/kirby/releases/tag/4.9.0) and [Kirby 5.4.0](https://github.com/getkirby/kirby/releases/tag/5.4.0). Please update to one of these or a [later version](https://github.com/getkirby/kirby/releases) to fix the vulnerability.\n\nIn all of the mentioned releases, we have updated the normalization code that is used during the creation of pages, files and users to include a filter for the `blueprint` property. This prevents the injection of dynamic blueprint configuration into the creation request.\n\n### Credits\n\nKirby thanks @offset for responsibly reporting the identified issue.","aliases":["CVE-2026-41325"],"modified":"2026-05-05T16:11:41.933292Z","published":"2026-04-24T20:39:36Z","database_specific":{"nvd_published_at":"2026-04-24T01:16:12Z","cwe_ids":["CWE-863"],"severity":"HIGH","github_reviewed":true,"github_reviewed_at":"2026-04-24T20:39:36Z"},"references":[{"type":"WEB","url":"https://github.com/getkirby/kirby/security/advisories/GHSA-6gqr-mx34-wh8r"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-41325"},{"type":"PACKAGE","url":"https://github.com/getkirby/kirby"},{"type":"WEB","url":"https://github.com/getkirby/kirby/releases/tag/4.9.0"},{"type":"WEB","url":"https://github.com/getkirby/kirby/releases/tag/5.4.0"}],"affected":[{"package":{"name":"getkirby/cms","ecosystem":"Packagist","purl":"pkg:composer/getkirby/cms"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.9.0"}]}],"versions":["3.0.0","3.0.1","3.0.1-rc.1","3.0.2","3.0.2-rc.1","3.0.3","3.0.3-rc.1","3.0.3-rc.2","3.0.3-rc.3","3.1.0","3.1.0-rc.1","3.1.1","3.1.2","3.1.2-rc.1","3.1.3","3.1.3-rc.1","3.1.4","3.1.4-rc.1","3.10.0","3.10.0.1","3.10.1","3.10.1.1","3.10.1.2","3.2.0","3.2.0-rc.1","3.2.0-rc.2","3.2.0-rc.3","3.2.0-rc.4","3.2.1","3.2.1-rc.1","3.2.2","3.2.3","3.2.3-rc.1","3.2.4","3.2.4-rc.1","3.2.5","3.2.5-rc.1","3.2.5-rc.2","3.3.0","3.3.0-rc.1","3.3.0-rc.2","3.3.0-rc.3","3.3.0-rc.4","3.3.0-rc.5","3.3.1","3.3.1-rc.1","3.3.2","3.3.2-rc.1","3.3.3","3.3.3-rc.1","3.3.4","3.3.4-rc.1","3.3.5","3.3.5-rc.1","3.3.6","3.4.0","3.4.0-rc.1","3.4.0-rc.2","3.4.0-rc.3","3.4.1","3.4.1-rc.1","3.4.2","3.4.3","3.4.3-rc.1","3.4.4","3.4.4-rc.1","3.4.5","3.5.0","3.5.0-rc.1","3.5.0-rc.2","3.5.0-rc.3","3.5.0-rc.4","3.5.0-rc.5","3.5.0-rc.6","3.5.0-rc.7","3.5.1","3.5.1-rc.1","3.5.2","3.5.2-rc.1","3.5.3","3.5.3.1","3.5.4","3.5.5","3.5.5-rc.1","3.5.6","3.5.6-rc.1","3.5.7","3.5.7-rc.1","3.5.7.1","3.5.8","3.5.8.1","3.5.8.2","3.5.8.3","3.5.8.4","3.6.0","3.6.0-alpha.1","3.6.0-alpha.2","3.6.0-alpha.3","3.6.0-alpha.4","3.6.0-beta.1","3.6.0-beta.2","3.6.0-beta.3","3.6.0-rc.1","3.6.0-rc.2","3.6.0-rc.3","3.6.0-rc.4","3.6.0-rc.5","3.6.1","3.6.1.1","3.6.2","3.6.2-rc.1","3.6.2-rc.2","3.6.2-rc.3","3.6.3","3.6.3-rc.1","3.6.3-rc.2","3.6.3.1","3.6.4","3.6.4-rc.1","3.6.5","3.6.5-rc.1","3.6.6","3.6.6-rc.1","3.6.6.1","3.6.6.2","3.6.6.3","3.6.6.4","3.6.6.5","3.6.6.6","3.7.0","3.7.0-rc.1","3.7.0-rc.2","3.7.0-rc.3","3.7.0.1","3.7.0.2","3.7.1","3.7.1-rc.1","3.7.2","3.7.2-rc.1","3.7.2.1","3.7.3","3.7.3-rc.1","3.7.4","3.7.4-rc.1","3.7.5","3.7.5.1","3.7.5.2","3.7.5.3","3.7.5.4","3.7.5.5","3.8.0","3.8.0-rc.1","3.8.0-rc.2","3.8.0-rc.3","3.8.1","3.8.1-rc.1","3.8.1.1","3.8.2","3.8.2-rc.1","3.8.3","3.8.3-rc.1","3.8.3-rc.2","3.8.4","3.8.4.1","3.8.4.2","3.8.4.3","3.8.4.4","3.9.0","3.9.0-rc.1","3.9.0-rc.2","3.9.1","3.9.1-rc.1","3.9.2","3.9.2-rc.1","3.9.3","3.9.3-rc.1","3.9.4","3.9.4-rc.1","3.9.5","3.9.5-rc.1","3.9.6","3.9.6-rc.1","3.9.6.1","3.9.7","3.9.7-rc.1","3.9.8","3.9.8-rc.1","3.9.8.1","3.9.8.2","3.9.8.3","4.0.0","4.0.0-alpha.1","4.0.0-alpha.2","4.0.0-alpha.3","4.0.0-alpha.4","4.0.0-alpha.5","4.0.0-alpha.6","4.0.0-alpha.7","4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-rc.1","4.0.0-rc.2","4.0.0-rc.3","4.0.0-rc.4","4.0.1","4.0.2","4.0.3","4.1.0","4.1.0-rc.1","4.1.0-rc.2","4.1.0-rc.3","4.1.1","4.1.2","4.2.0","4.2.0-rc.1","4.3.0","4.3.0-rc.1","4.3.1","4.4.0","4.4.0-rc.1","4.4.1","4.5.0","4.5.0-rc.1","4.6.0","4.6.0-rc.1","4.6.1","4.7.0","4.7.0-rc.1","4.7.1","4.7.2","4.8.0","4.8.0-rc.1"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-6gqr-mx34-wh8r/GHSA-6gqr-mx34-wh8r.json"}},{"package":{"name":"getkirby/cms","ecosystem":"Packagist","purl":"pkg:composer/getkirby/cms"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.0.0"},{"fixed":"5.4.0"}]}],"versions":["5.0.0","5.0.1","5.0.2","5.0.3","5.0.4","5.1.0","5.1.0-rc.1","5.1.1","5.1.2","5.1.3","5.1.4","5.2.0","5.2.0-rc.1","5.2.1","5.2.2","5.2.3","5.3.0","5.3.0-rc.1","5.3.1","5.3.2","5.3.3"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-6gqr-mx34-wh8r/GHSA-6gqr-mx34-wh8r.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N"}]}