CVE-2026-32870Kirby CMS是一个开源内容管理系统,其Xml::value()方法在处理CDATA块时存在逻辑缺陷。在受影响版本中,该方法对CDATA的校验不够严格,允许包含合法CDATA块及外部恶意XML结构的特殊输入绕过安全检查。虽然Kirby核心未直接使用该函数,但若插件或站点代码利用其生成XML并发送给依赖特定Schema的解释器,攻击者可操纵XML结构,破坏系统完整性。官方已在4.9.0及5.4.0版本中修复此问题。
漏洞源于Kirby的Xml::value()方法旨在避免对已是CDATA的内容进行二次转义。旧版本的校验机制仅检查输入是否包含CDATA标记,若存在则直接放行。攻击者可构造混合载荷,例如在CDATA块后附加恶意标签(如`<![CDATA[x]]><evil>data</evil>`)。当Xml::tag()或Xml::create()使用此输入时,恶意标签未被转义,直接嵌入生成的XML文档中。如果下游系统解析此XML,攻击者注入的结构将被执行,可能导致数据篡改或逻辑绕过。