RDoc 文档生成的 XSS 漏洞 (CVE-2013-0256)

usa 于 2013 年 2 月 6 日发布

Ruby 捆绑的 rdoc 生成的 RDoc 文档容易受到 XSS 攻击。建议所有 Ruby 用户更新到包含安全修复的 RDoc 的 Ruby 版本。如果您正在发布由 rdoc 生成的 RDoc 文档,建议您应用文档补丁或使用安全修复的 RDoc 重新生成。

影响

rdoc 2.3.0 至 rdoc 3.12 以及 prereleases(最高到 rdoc 4.0.0.preview2.1)生成的 RDoc 文档存在 XSS 漏洞。此漏洞可能导致 cookie 信息泄露给第三方。

详情

该漏洞存在于 darkfish.js 文件中,该文件会从 RDoc 的安装位置复制到生成的文档中。

RDoc 是一个静态文档生成工具。仅修补库本身不足以解决此漏洞。托管 rdoc 文档的用户需要应用以下补丁。

解决方案

请将以下补丁应用于 rdoc 文档。如果忽略空格应用此补丁,将修复所有受影响的版本。

diff --git darkfish.js darkfish.js
index 4be722f..f26fd45 100644
--- darkfish.js
+++ darkfish.js
@@ -109,13 +109,15 @@ function hookSearch() {
 function highlightTarget( anchor ) {
   console.debug( "Highlighting target '%s'.", anchor );

-  $("a[name=" + anchor + "]").each( function() {
-    if ( !$(this).parent().parent().hasClass('target-section') ) {
-      console.debug( "Wrapping the target-section" );
-      $('div.method-detail').unwrap( 'div.target-section' );
-      $(this).parent().wrap( '<div class="target-section"></div>' );
-    } else {
-      console.debug( "Already wrapped." );
+  $("a[name]").each( function() {
+    if ( $(this).attr("name") == anchor ) {
+      if ( !$(this).parent().parent().hasClass('target-section') ) {
+        console.debug( "Wrapping the target-section" );
+        $('div.method-detail').unwrap( 'div.target-section' );
+        $(this).parent().wrap( '<div class="target-section"></div>' );
+      } else {
+        console.debug( "Already wrapped." );
+      }
     }
   });
 };

另外,如果您使用的是 ruby 1.9,请更新至 ruby-1.9.3 patchlevel 385。如果您使用的是 ruby 2.0.0 rc1 或更早版本,或者 ruby trunk,请更新至 ruby 2.0.0 rc2 或 trunk revision 39102 或更高版本。您也可以通过 rubygems 更新 RDoc 本身至 RDoc 3.12.1 或 RDoc 4.0.0.rc.2。

受影响的版本

  • 所有 ruby 1.9 版本,低于 ruby 1.9.3 patchlevel 383 的版本。
  • 所有 ruby 2.0 版本,低于 ruby 2.0.0 rc2 或 trunk revision 39102 的版本。

致谢

此漏洞由 Evgeny Ermakov <corwmh@gmail.com> 发现。

此漏洞已分配 CVE 标识符 CVE-2013-0256。

历史

  • 最初发布于 2013-02-06 13:30:00 (UTC)

近期新闻

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 日

更多新闻...