CVE-2026-32870: Kirby has XML injection in its XML creator toolkit

CVE-2026-32870 · Severity: high · CVSS 7.5 · Published 2026-04-24

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.

Technologies: Getkirby Kirby, getkirby/cms (Packagist). Vendors: Getkirby, Packagist.

Quick answers

Is CVE-2026-32870 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-32870 being exploited in the wild.
How severe is CVE-2026-32870?
High severity, with a CVSS score of 7.5, published 24 April 2026.
Which products and versions are affected?
getkirby/cms (Packagist) ECOSYSTEM:introduced=0,fixed=4.9.0.
Is there a fix for CVE-2026-32870?
Yes. getkirby/cms (Packagist): upgrade to 4.9.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
Am I affected by CVE-2026-32870?
Check whether you run Getkirby Kirby or getkirby/cms (Packagist) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • getkirby/cms (Packagist): upgrade to 4.9.0 or later
    composer require getkirby/cms:^4.9.0

Affected products

  • Getkirby Kirby
  • getkirby/cms (Packagist) ECOSYSTEM:introduced=0,fixed=4.9.0

Identifiers

  • CVE-2026-32870
  • GHSA-9wfj-c55w-j9qr

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.