WEBrick 存在转义序列注入漏洞
由 Urabe Shyouhei 发布于 2010年1月10日
在 Ruby 标准库的一部分 WEBrick 中发现了一个漏洞。WEBrick 允许攻击者向其日志注入恶意转义序列,从而有可能在受害者终端模拟器上执行危险的控制字符。
我们已经有一个修复方案。所有活跃分支的发行版都将在此公告后发布。但在此期间,我们建议您在更新 WEBrick 进程之前,避免查看 WEBrick 日志。
详细描述
终端转义序列用于允许终端与内部进程之间的各种交互。问题在于,这些序列并非旨在由不受信任的来源(例如网络输入)发出。因此,如果远程攻击者可以将转义序列注入 WEBrick 日志,而受害者恰好通过其终端查看这些日志,攻击者就可以利用 终端模拟器的各种漏洞。
WEBrick 未能过滤这些终端转义序列。
示例
% xterm -e ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port=>8080).start' &
% wget https://:8080/%1b%5d%32%3b%6f%77%6e%65%64%07%0a
注意 xterm 的窗口标题。
受影响的版本
- Ruby 1.8.6 patchlevel 383 及之前的所有版本
- Ruby 1.8.7 patchlevel 248 及之前的所有版本
- Ruby 1.8 的开发版本 (1.8.8dev)
- Ruby 1.9.1 patchlevel 376 及之前的所有版本
- Ruby 1.9 (1.9.2dev) 的开发版本
解决方案
- 1.8.6、1.8.7 和 1.9.1 的修复将在此公告后发布。
- 更新 1.8.7 pl. 249 已发布以修复此问题。鼓励 1.8.7 用户升级。
- 更新 1.9.1 pl. 378 已发布以修复此问题。鼓励 1.9.1 用户升级。
- 更新 1.8.6 pl. 388 已发布以修复此问题。鼓励 1.8.6 用户升级。
- 对于开发版本,请更新到每个开发分支的最新修订版本。
致谢
感谢 Giovanni "evilaliv3" Pellerano、Alessandro "jekil" Tanasi 和 Francesco "ascii" Ongaro 发现此漏洞。
近期新闻
Ruby 4.0.0 发布
我们很高兴地宣布 Ruby 4.0.0 的发布。Ruby 4.0 引入了“Ruby Box”和“ZJIT”,并增加了许多改进。
由 naruse 发布于 2025 年 12 月 25 日
Ruby 文档的全新外观
继 ruby-lang.org 重新设计之后,我们还有更多好消息来庆祝 Ruby 成立 30 周年:docs.ruby-lang.org 采用了 Aliki——RDoc 的新默认主题,焕然一新。
由 Stan Lo 发布于 2025 年 12 月 23 日
重新设计我们的网站标识
我们很高兴地宣布对我们的网站进行全面重新设计。此次更新的设计由 Akatsuka Taeko 创作。
由 Hiroshi SHIBATA 发布于 2025 年 12 月 22 日
Ruby 4.0.0 preview3 发布
我们很高兴地宣布 Ruby 4.0.0-preview3 的发布。Ruby 4.0 引入了 Ruby::Box 和“ZJIT”,并增加了许多改进。
由 naruse 发布于 2025 年 12 月 18 日