CVE-2026-22028CVE-2026-22028是Preact框架中的一个安全漏洞,CVSS评分6.1,属于中危级别。Preact是一个轻量级的Web开发框架,该漏洞源于10.26.5版本中引入的回归问题,导致原本用于防止Virtual DOM元素被任意JSON构造的保护机制被削弱。在满足特定条件的应用中,攻击者可以构造特殊的JSON payload,这些payload会被错误地视为有效的VNode(虚拟DOM节点),从而导致HTML注入。如果应用未通过CSP或其他机制进行缓解,还可能导致任意脚本执行。此漏洞影响所有使用受影响Preact版本且将用户数据直接传递给渲染树的应用。
Preact框架为了防止通过JSON构造Virtual DOM元素实现了JSON序列化保护机制。然而在10.26.5版本中,这种保护被意外削弱。漏洞的核心在于:当应用满足以下条件时会被利用——1)将来自API、数据库、本地存储等用户可修改数据源的未消毒值直接传入渲染树;2)假设这些值都是字符串,但数据源可能返回JavaScript对象;3)数据源未执行类型消毒或已被破坏。攻击者可以通过在JSON payload中嵌入特殊构造的对象,这些对象会被Preact错误地解析为有效的VNode标识符(如'h'、'div'等),从而在渲染时注入任意HTML内容。如果目标应用未启用Content Security Policy,注入的script标签可被执行,导致XSS攻击。修复版本(10.26.10、10.27.3、10.28.2)恢复了严格的相等性检查,确保JSON解析后的对象不会被误认为有效VNode。