发布者:usa,于 2013 年 2 月 6 日
ruby 捆绑的 rdoc 生成的 RDoc 文档存在 XSS 漏洞。建议所有 ruby 用户将 ruby 更新到包含安全修复的 RDoc 的较新版本。如果您正在发布由 rdoc 生成的 RDoc 文档,建议您为文档应用补丁或使用安全修复的 RDoc 重新生成它。
影响
rdoc 2.3.0 到 rdoc 3.12 以及 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)