CVE-2026-34587
HighCVSS 8.1Exploitation Probability (EPSS)
Low risk27th percentile - higher than 27% of all known CVEs
Summary
A vulnerability in Kirby CMS allowed users with the `pages.create` permission to create pages directly in published state via the REST API, bypassing the required `pages.changeStatus` permission. The issue affected versions prior to 4.9.0 and 5.4.0 and was fixed by changing how option queries are resolved in blueprints.
Risk Assessment
An authenticated attacker with page creation permission could bypass the editorial workflow and immediately publish content, potentially leading to unauthorized disclosure or modification of information on the site.
Recommendation
Update Kirby CMS to version 4.9.0 or 5.4.0 (or later) to eliminate the vulnerability.
Other vulnerabilities in Kirby CMS
See all- CVE-2026-45368High
In Kirby CMS versions prior to 4.9.1 and 5.4.1, a vulnerability was found where URL methods for KirbyTags and image blocks components did not filter malicious URL values that resolve to script execution. Attackers can use URL formats like `javascript://x%0A…` to bypass protection against simple `javascript:` URLs and execute scripts.
- CVE-2026-45334Medium
In Kirby CMS versions prior to 4.9.1 and 5.4.1, the content-locking feature exposed user email addresses and identifiers without checking access permissions. A low-privilege authenticated user could learn the email and ID of any user currently editing a model, including administrators.
- CVE-2026-44177High
In Kirby CMS versions 5.3.0 through 5.4.0, a path traversal vulnerability was found due to improper validation of user IDs. An attacker could include arbitrary PHP files named index.php and probe the server's directory structure.
- CVE-2026-44176Medium
In Kirby CMS versions prior to 4.9.1 and 5.4.1, the `pages.access` permission was not checked during page draft rendering. An authenticated attacker with knowledge of the full path to an existing draft could access its frontend preview, leading to disclosure of sensitive information.
- CVE-2026-44175High
Kirby CMS versions prior to 4.9.1 and 5.4.1 do not properly sanitize the list field content on save, allowing XSS attacks. An attacker can bypass the Panel and send malicious HTML directly to the API, which will be executed in visitors' browsers.
- CVE-2026-44174High
Kirby CMS before versions 4.9.1 and 5.4.1 does not validate model attributes used in collection queries, allowing attackers to invoke arbitrary model methods. This can lead to disclosure of sensitive data (e.g., password hashes, filesystem paths) or execution of impactful actions (e.g., privilege escalation, mass deletion of models).
- CVE-2026-54004Medium
In Kirby CMS before versions 4.9.4 and 5.4.4, with content.fileRedirects enabled, unauthenticated clean file URL requests for files in top-level draft pages are redirected to physical media URLs without checking page access permissions or preview tokens, leading to disclosure of draft file contents.
- CVE-2026-54002High
A vulnerability in Kirby CMS before versions 4.9.4 and 5.4.4 allows stored cross-site scripting via malicious markup injected as children of unknown HTML/XML tags. The sanitization functions fail to properly filter such input.
- CVE-2026-50188Medium
A vulnerability in Kirby CMS allows HTTP header injection via newline characters in the header value of the headers option in the Http Remote class. An attacker can inject an unintended header into outgoing requests.
- CVE-2026-49276High
A vulnerability in the Kirby content management system allows a scripting link to be injected as the target of a link in the writer field, enabling self-cross-site scripting (XSS) in the Panel. The issue affects versions prior to 4.9.4 and 5.4.4.
Original NVD description (English source)
Kirby is an open-source content management system. Prior to versions 4.9.0 and 5.4.0, 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). In affected releases, 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 updated the `Options` logic to no longer double-resolve queries in option values coming from `OptionsQuery` or `OptionsApi` sources. Kirby now only resolves queries that are directly configured in the blueprints.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

