Kirby CMS's REST API collection endpoints fail to validate model attribute names before invoking them, allowing any authenticated Panel user to call arbitrary PHP model methods — including password() to extract credential hashes, loginPasswordless() to instantly escalate to any user account without knowing their password, and delete() to bulk-destroy entire content collections. While exploitation requires an existing Panel credential, the step from low-privilege editor to full admin is a single crafted API call, requiring no advanced tooling. With 469 downstream dependents and 6 prior CVEs in this package, organizations using Kirby as a data management layer for AI training corpora or RAG document pipelines carry compounded exposure. No public exploit or CISA KEV listing exists at time of analysis; patch to Kirby 4.9.1 (v4.x) or 5.4.1 (v5.x) immediately, audit Panel accounts for unauthorized users, and review API logs for collection queries referencing method names such as password, root, loginPasswordless, or delete.
What is the risk?
Exploitability requires authenticated Panel access, which reduces opportunistic risk but elevates insider threat and post-compromise pivot scenarios. Once that bar is cleared, exploitation is trivial: the attacker only needs to name a sensitive method in a filter query parameter — no memory corruption, no shellcode. Impact is high across three dimensions: credential exfiltration (password hashes for all Panel users), account takeover via passwordless login, and irreversible mass deletion of content. For AI-adjacent deployments where Kirby manages training data or pipeline inputs, a compromised editor account becomes a foothold for full pipeline sabotage. Package OpenSSF score of 7.1/10 is acceptable but 6 prior CVEs indicate recurring input-validation weaknesses.
Attack Kill Chain
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| getkirby/cms | composer | <= 4.9.0 | 4.9.1 |
Do you use getkirby/cms? You're affected.
Severity & Risk
What should I do?
5 steps-
Update getkirby/cms to 4.9.1 (v4.x branch) or 5.4.1 (v5.x branch) — these releases add a method blocklist for collection operations and restrict affected API endpoint query options to search and pagination only.
-
Immediately audit Panel user accounts: revoke unnecessary accounts, enforce unique strong passwords, and enable MFA where supported.
-
Review server-side API access logs for collection queries containing attribute names: password, root, loginPasswordless, delete, or kirbytext.
-
Restrict Panel and REST API access to trusted IP ranges at the network/firewall level pending patching.
-
If emergency patching is not immediately possible, consider disabling or rate-limiting the REST API collection endpoints as a temporary control.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-44174?
Kirby CMS's REST API collection endpoints fail to validate model attribute names before invoking them, allowing any authenticated Panel user to call arbitrary PHP model methods — including password() to extract credential hashes, loginPasswordless() to instantly escalate to any user account without knowing their password, and delete() to bulk-destroy entire content collections. While exploitation requires an existing Panel credential, the step from low-privilege editor to full admin is a single crafted API call, requiring no advanced tooling. With 469 downstream dependents and 6 prior CVEs in this package, organizations using Kirby as a data management layer for AI training corpora or RAG document pipelines carry compounded exposure. No public exploit or CISA KEV listing exists at time of analysis; patch to Kirby 4.9.1 (v4.x) or 5.4.1 (v5.x) immediately, audit Panel accounts for unauthorized users, and review API logs for collection queries referencing method names such as password, root, loginPasswordless, or delete.
Is CVE-2026-44174 actively exploited?
No confirmed active exploitation of CVE-2026-44174 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-44174?
1. Update getkirby/cms to 4.9.1 (v4.x branch) or 5.4.1 (v5.x branch) — these releases add a method blocklist for collection operations and restrict affected API endpoint query options to search and pagination only. 2. Immediately audit Panel user accounts: revoke unnecessary accounts, enforce unique strong passwords, and enable MFA where supported. 3. Review server-side API access logs for collection queries containing attribute names: password, root, loginPasswordless, delete, or kirbytext. 4. Restrict Panel and REST API access to trusted IP ranges at the network/firewall level pending patching. 5. If emergency patching is not immediately possible, consider disabling or rate-limiting the REST API collection endpoints as a temporary control.
What systems are affected by CVE-2026-44174?
This vulnerability affects the following AI/ML architecture patterns: CMS-backed RAG document pipelines, AI training data management interfaces, Content-driven AI application backends, ML workflow data ingestion systems.
What is the CVSS score for CVE-2026-44174?
No CVSS score has been assigned yet.
AI Security Impact
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012 Valid Accounts AML.T0049 Exploit Public-Facing Application AML.T0106 Exploitation for Credential Access Compliance Controls Affected
Technical Details
Original Advisory
### TL;DR This vulnerability affects all Kirby sites that might have potential attackers in the group of authenticated Panel users. **This vulnerability is of high severity for affected sites and has a high real-world impact.** ---- ### Introduction Arbitrary method call is a type of arbitrary code execution. It is a vulnerability that allows attackers to run any commands or code of the attacker's choice on a target machine or in a target process. Depending on the set of accessible methods, this can lead to disclosure of sensitive information or to unintended and malicious write actions. ### Affected components Kirby's data model is made up of model objects that are contained in collection objects. These collections can be queried with methods such as `$collection->filter()`, `$collection->sort()`, `$collection->group()`, `$collection->pluck()` and `$collection->findBy()`. Each of these methods allows to query the models contained in the collection by any accessible model attribute (field or method). Kirby also provides endpoints in its REST API that allow to search through users or through children and files of the site or of a particular page. These endpoints allow the `search`, `not`, `filter` and `sort` queries as well as options to paginate the result. The same kind of queries can also be provided to API collections such as `/<site|page|user>/blueprints`, `/<site|page>/children`, `/<model>/files`, `/languages`, `/roles`, `/translations`, `/users` and `/<user>/roles`. ### Impact In affected releases, Kirby did not validate the model attributes that were used in the collection queries. This allowed attackers to include arbitrary model methods in their queries. This includes methods with sensitive data such as `password()` (disclosing the password hash) or `root()` (disclosing the absolute filesystem path on the server) as well as methods that perform impactful actions such as `loginPasswordless()` (causing a privilege escalation to another user) or `delete()` (deleting all queried models in one go if the authenticated user has appropriate permissions). ### Patches The problem has been patched in [Kirby 4.9.1](https://github.com/getkirby/kirby/releases/tag/4.9.1) and [Kirby 5.4.1](https://github.com/getkirby/kirby/releases/tag/5.4.1). Please update to one of these or a [later version](https://github.com/getkirby/kirby/releases) to fix the vulnerability. In all of the mentioned releases, Kirby has added a blocklist of sensitive model methods that should not be called during collection operations and limited the query options for the affected endpoints to search and pagination. ### Credits Kirby thanks @mojamojam for responsibly reporting the identified issue.
Exploitation Scenario
An attacker holding a low-privilege Kirby Panel editor account — obtained via phishing, credential stuffing, or a malicious insider — sends a crafted GET request to the /api/users endpoint with a filter query parameter set to the attribute name 'password'. Kirby's collection query engine invokes the password() method on each user model without validation, returning plaintext-accessible password hashes for every Panel user in the JSON response. Rather than waiting to crack hashes, the attacker immediately follows with a second request invoking loginPasswordless() as the filter attribute on the target admin user, triggering a direct session elevation to admin without requiring knowledge of the admin password. From that admin position, the attacker accesses AI training datasets managed in Kirby, exfiltrates content, or invokes delete() via another collection query to irreversibly destroy document collections relied upon by downstream RAG or ML pipelines.
Weaknesses (CWE)
References
Timeline
Related Vulnerabilities
CVE-2026-44897 6.1 mistune: XSS via unescaped heading id= attribute
Same package: panel CVE-2026-44898 6.1 mistune: XSS in TOC render via unescaped heading ID
Same package: panel CVE-2026-44708 6.1 mistune: math plugin XSS bypasses escape=True control
Same package: panel CVE-2026-44899 4.7 mistune: CSS injection enables phishing UI overlay
Same package: panel CVE-2026-44176 Kirby CMS: auth bypass exposes restricted page drafts
Same package: panel