CVE-2026-44458Hono是一个支持任意JavaScript运行时的Web应用框架。在4.12.18版本之前,其JSX渲染器在处理样式属性时存在安全缺陷。虽然渲染器会对HTML进行转义以防止HTML注入,但未对CSS对象值进行转义。因此,攻击者可以通过不受信任的输入,在样式对象值或属性名中注入额外的CSS声明。该漏洞的影响范围仅限于CSS,不允许执行JavaScript代码或逃逸HTML属性。该问题已在4.12.18版本中修复。
该漏洞的根源在于Hono JSX渲染器对样式对象的处理逻辑。当JSX组件接收一个对象作为`style`属性的值时,渲染器会将该对象转换为CSS字符串并插入到HTML标签中。在受影响的版本中,渲染器虽然确保了HTML上下文的安全性(防止XSS),但在拼接CSS属性值时,未考虑CSS语法中的特殊字符(如分号';')。攻击者可以构造恶意的输入对象,例如 `{ color: 'red; background: url(http://evil.com); display: none' }`。渲染器在处理时,会将整个字符串作为CSS属性的值,导致分号后的内容被解析为新的CSS声明。虽然现代浏览器对CSS中的JavaScript执行(如expression或javascript:)有严格的限制,且该漏洞不涉及属性逃逸(无法跳出style属性),但仍可能导致页面布局被破坏或通过高级CSS注入技术窃取敏感信息(尽管CVSS评分未将机密性影响计入)。