Lỗ hổng XSS trong tài liệu RDoc được tạo bởi rdoc (CVE-2013-0256)

Đăng bởi usa vào 6 Feb 2013

Tài liệu RDoc được tạo bởi rdoc đi kèm với Ruby có lỗ hổng XSS. Tất cả người dùng Ruby được khuyến nghị cập nhật Ruby lên phiên bản mới hơn có bản sửa lỗi bảo mật cho RDoc. Nếu bạn đang xuất bản tài liệu RDoc được tạo bởi rdoc, bạn nên áp dụng bản vá cho tài liệu hoặc tạo lại nó với RDoc đã được sửa lỗi bảo mật.

Ảnh hưởng

Tài liệu RDoc được tạo bởi rdoc 2.3.0 đến rdoc 3.12 và các phiên bản prerelease đến rdoc 4.0.0.preview2.1 có lỗ hổng XSS. Lỗ hổng này có thể dẫn đến việc cookie bị lộ cho bên thứ ba.

Chi tiết

Lỗ hổng tồn tại trong darkfish.js, được sao chép từ vị trí cài đặt RDoc vào tài liệu được tạo ra.

RDoc là công cụ tạo tài liệu tĩnh. Việc vá chính thư viện là không đủ để sửa lỗ hổng này. Những người host tài liệu rdoc sẽ cần áp dụng bản vá sau đây.

Giải pháp

Vui lòng áp dụng bản vá sau cho tài liệu rdoc. Nếu được áp dụng trong khi bỏ qua khoảng trắng, bản vá này sẽ sửa tất cả các phiên bản bị ảnh hưởng:

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." );
+      }
     }
   });
 };

Và, nếu bạn đang sử dụng ruby 1.9, vui lòng cập nhật lên ruby-1.9.3 patchlevel 385. Nếu bạn đang sử dụng ruby 2.0.0 rc1 hoặc trước đó hoặc ruby trunk, vui lòng cập nhật lên ruby 2.0.0 rc2 hoặc trunk revision 39102 hoặc mới hơn. Bạn cũng có thể cập nhật chính RDoc thông qua rubygems lên RDoc 3.12.1 hoặc RDoc 4.0.0.rc.2.

Phiên bản bị ảnh hưởng

  • Tất cả phiên bản ruby 1.9 trước ruby 1.9.3 patchlevel 383
  • Tất cả phiên bản ruby 2.0 trước ruby 2.0.0 rc2 hoặc trước trunk revision 39102

Ghi nhận

Lỗ hổng này được phát hiện bởi Evgeny Ermakov <corwmh@gmail.com>.

Lỗ hổng này đã được gán mã CVE CVE-2013-0256.

Lịch sử

  • Được công bố lần đầu vào 2013-02-06 13:30:00 (UTC)

Tin mới nhất

Phát hành Ruby 4.0.0

Chúng tôi vui mừng thông báo phát hành Ruby 4.0.0. Ruby 4.0 giới thiệu “Ruby Box” và “ZJIT”, cùng nhiều cải tiến khác.

Đăng bởi naruse vào 25 Dec 2025

Diện mạo mới cho tài liệu Ruby

Tiếp theo việc thiết kế lại ruby-lang.org, chúng tôi có thêm tin vui để kỷ niệm 30 năm Ruby: docs.ruby-lang.org có diện mạo hoàn toàn...

Đăng bởi Stan Lo vào 23 Dec 2025

Thêm Tin...