Ruby on Rails 中的表单助手(form helpers)的转义代码存在一个漏洞。
攻击者可以注入故意构造的畸形 Unicode 字符串到表单助手,
从而绕过转义检查并注入任意 HTML。
任意 HTML。
Versions Affected: 2.0.0 and *all* subsequent versions. Not affected: Applications running on ruby 1.9 Fixed Versions: 2.3.4, 2.2.3 Candidate CVE: CVE-2009-3009
由于大多数数据库要么不接受,要么会主动清理畸形 Unicode 字符串,
因此该漏洞最有可能通过非持久性攻击来利用,但某些配置下仍然可能发生持久性攻击。
通过非持久性攻击来利用,但某些配置下仍然可能发生持久性攻击。
仍然可能发生持久性攻击。
所有受影响版本的用户都应升级到已修复的版本。
2.3.4 和 2.2.3 版本将很快发布,其中包含此问题的修复。
为了向运行不受支持的版本或目前无法升级的用户提供修复,
我们提供了针对所有受影响的稳定发布分支的补丁。
我们提供了补丁。
这些补丁采用适合 git-am 的格式,包含两个变更集:
用于清理多字节字符串的代码,以及
将该代码引入相关助手。
请注意,目前仅支持 2.2.x 和 2.3.x 系列。
建议用户尽快升级早期不受支持的版本,
因为我们无法保证将来会以这种方式向后移植问题。
会以这种方式进行回溯修复。
感谢 Brian Mastenbrook 向我们报告此漏洞,以及 Manfred Stienstra(来自 Fingertips)与我们合作完成修复。