CVE-2026-33170Ruby on Rails Active Support在特定版本前存在安全漏洞。SafeBuffer#%方法未正确传播@html_unsafe标志,当SafeBuffer被就地修改(如使用gsub!)后,利用不可信参数进行格式化时,结果错误返回html_safe状态。这导致ERB自动转义失效,攻击者可利用此漏洞实施跨站脚本攻击。
该漏洞源于Ruby on Rails Active Support库中SafeBuffer类的实现逻辑缺陷。SafeBuffer机制用于标记安全字符串以防止XSS。然而,SafeBuffer#%方法在创建新缓冲区时未能正确传播@html_unsafe标志。攻击流程如下:首先,应用对SafeBuffer对象使用gsub!等方法进行原地修改;随后,当应用使用攻击者控制的不可信输入通过%操作符对该对象进行格式化时,由于标志传播失败,生成的字符串被错误判定为html_safe。最终,ERB渲染时跳过自动转义,导致恶意脚本在用户浏览器中执行。