2009年9月4日,星期五

Ruby on Rails 中的 XSS 漏洞

由 michael 发布

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)与我们合作完成修复。