| Title | getkirbyのkirbyにおけるブラインド XPath インジェクションの脆弱性 |
|---|---|
| Summary | Kirbyはオープンソースのコンテンツ管理システムです。Kirbyの`Xml::value()`メソッドは`![CDATA[ ]]`ブロックに対して特別な処理を行います。入力値がすでに有効な`CDATA`であれば、二重にエスケープせずにそのまま通過させます。しかし、バージョン4.9.0および5.4.0以前のバージョンでは、このチェックを騙して`CDATA`ブロックのみが有効でも、その外側に他の構造化データが含まれている値を通過させることが可能でした。この構造化データも通過が許されることで、値の保護を回避されてしまいます。`Xml::value()`メソッドは`Xml::tag()`、`Xml::create()`および`Xml`データハンドラー(例:`Data::encode($string, 'xml')`)内で使用されています。脆弱なメソッドおよびデータハンドラーはKirbyコアでは使用されていませんが、サイトやプラグインのコードで、例えば入力データからXML文字列を生成するために使用されている場合があります。生成されたファイルが他の実装に渡され、そのXMLスキーマに特定の意味が割り当てられる場合、このシステムの動作を操作される可能性があります。サイトやプラグインのコードでXML生成を使用していないKirbyサイトは影響を受けません。この問題はKirby 4.9.0およびKirby 5.4.0で修正されました。これらのリリースには、文字列全体が有効な`CDATA`ブロックのみで構成されている場合に限り、変更されていない`CDATA`の通過を許可する追加のチェックが加えられました。これにより、メソッドのすべての使用例が説明された脆弱性から保護されるようになりました。 |
| Possible impacts | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアは停止しません。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | 正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。 |
| Publication Date | April 24, 2026, midnight |
| Registration Date | April 30, 2026, 12:31 p.m. |
| Last Update | April 30, 2026, 12:31 p.m. |
| CVSS3.0 : 重要 | |
| Score | 7.5 |
|---|---|
| Vector | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| getkirby |
| kirby 4.9.0 未満 |
| kirby 5.0.0 以上 5.4.0 未満 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年04月30日] 掲載 |
April 30, 2026, 12:31 p.m. |
| Summary | 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. |
|---|---|
| Publication Date | April 24, 2026, 10:16 a.m. |
| Registration Date | April 25, 2026, 4:07 a.m. |
| Last Update | April 28, 2026, 4:21 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:a:getkirby:kirby:*:*:*:*:*:*:*:* | 4.9.0 | ||||
| cpe:2.3:a:getkirby:kirby:*:*:*:*:*:*:*:* | 5.0.0 | 5.4.0 | |||