CVE-2026-32870

Source
https://cve.org/CVERecord?id=CVE-2026-32870
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-32870.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-32870
Aliases
Published
2026-04-24T00:19:13.544Z
Modified
2026-07-15T01:48:50.370950788Z
Severity
  • 6.9 (Medium) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:H/SA:N CVSS Calculator
Summary
Kirby has XML injection in its XML creator toolkit
Details

Kirby is an open-source content management system. Kirby's Xml::value() method has special handling for <![CDATA[ ]]> blocks. If the input value is already valid CDATA, it is not escaped a second time but allowed to pass through. However, prior to versions 4.9.0 and 5.4.0, it was possible to trick this check into allowing values that only contained a valid CDATA block but also contained other structured data outside of the CDATA block. This structured data would then also be allowed to pass through, circumventing the value protection. The Xml::value() method is used in Xml::tag(), Xml::create() and in the Xml data handler (e.g. Data::encode($string, 'xml')). Both the vulnerable methods and the data handler are not used in the Kirby core. However they may be used in site or plugin code, e.g. to create XML strings from input data. If those generated files are passed to another implementation that assigns specific meaning to the XML schema, manipulation of this system's behavior is possible. Kirby sites that don't use XML generation in site or plugin code are not affected. The problem has been patched in Kirby 4.9.0 and Kirby 5.4.0. In all of the mentioned releases, Kirby has added additional checks that only allow unchanged CDATA passthrough if the entire string is made up of valid CDATA blocks and no structured data. This protects all uses of the method against the described vulnerability.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/32xxx/CVE-2026-32870.json",
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-91"
    ]
}
References

Affected packages

Git / github.com/getkirby/kirby

Affected ranges

Type
GIT
Repo
https://github.com/getkirby/kirby
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Introduced
Fixed
Database specific
{
    "cpe": "cpe:2.3:a:getkirby:kirby:*:*:*:*:*:*:*:*",
    "extracted_events": [
        {
            "introduced": "0"
        },
        {
            "fixed": "4.9.0"
        },
        {
            "introduced": "5.0.0"
        },
        {
            "fixed": "5.4.0"
        }
    ],
    "source": [
        "CPE_RANGE",
        "REFERENCES"
    ]
}

Affected versions

3.*
3.0.0
3.0.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.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-rc.1
3.2.5
3.2.5-rc.1
3.2.5-rc.2
3.3.0
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.3.6
3.4.0
3.4.1
3.4.2
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.3
3.5.3.1
3.5.4
3.5.5
3.5.6
3.5.7
3.5.7.1
3.6.0
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.1
3.6.4
3.6.5
3.6.6
3.7.0
3.7.0.1
3.7.0.2
3.7.1
3.7.2
3.7.2.1
3.7.3
3.7.4
3.7.4-rc.1
3.7.5
3.8.0
3.8.1
3.8.1.1
3.8.2
3.8.3
3.8.4
3.9.0
3.9.1
3.9.2
3.9.3
3.9.4
3.9.5
3.9.6
3.9.6-rc.1
3.9.6.1
3.9.7
3.9.8
4.*
4.0.0
4.0.1
4.0.2
4.0.3
4.1.0
4.1.1
4.1.2
4.2.0
4.3.0
4.3.1
4.4.0
4.4.1
4.5.0
4.6.0
4.6.1
4.7.0
4.7.1
4.7.2
4.8.0
5.*
5.0.0
5.0.1
5.0.2
5.0.3
5.0.4
5.1.0
5.1.1
5.1.2
5.1.3
5.1.4
5.2.0
5.2.1
5.2.2
5.2.3
5.3.0
5.3.1
5.3.2
5.3.3

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-32870.json"