CVE-2015-7551: Sử dụng chuỗi tainted không an toàn trong Fiddle và DL

Đăng bởi usa vào 16 Dec 2015

Có một lỗ hổng sử dụng chuỗi tainted không an toàn trong Fiddle và DL. Lỗ hổng này đã được gán mã nhận dạng CVE CVE-2015-7551.

Chi tiết

Có một lỗ hổng chuỗi tainted không an toàn trong Fiddle và DL. Vấn đề này ban đầu được báo cáo và sửa với CVE-2009-5147 trong DL, nhưng xuất hiện lại sau khi DL được triển khai lại bằng Fiddle và libffi.

Và, về DL, CVE-2009-5147 đã được sửa tại Ruby 1.9.1, nhưng không được sửa ở các nhánh khác, do đó các phiên bản Ruby đi kèm DL ngoại trừ Ruby 1.9.1 vẫn bị ảnh hưởng.

Mã bị ảnh hưởng trông giống như sau:

handle = Fiddle::Handle.new(dangerous_user_input)

Hoặc:

handle = Fiddle::Handle.new(some_library)
function_pointer = handle[dangerous_user_input]

Tất cả người dùng đang chạy phiên bản bị ảnh hưởng nên nâng cấp hoặc sử dụng một trong các biện pháp khắc phục ngay lập tức.

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

  • Tất cả các bản vá của Ruby 1.9.2 và Ruby 1.9.3 (DL và Fiddle).
  • Tất cả các bản vá của Ruby 2.0.0 trước Ruby 2.0.0 patchlevel 648 (DL và Fiddle).
  • Tất cả các phiên bản Ruby 2.1 trước Ruby 2.1.8 (DL và Fiddle).
  • Tất cả các phiên bản Ruby 2.2 trước Ruby 2.2.4 (Fiddle).
  • Ruby 2.3.0 preview 1 và preview 2 (Fiddle).
  • Trước trunk revision 53153 (Fiddle).

Biện pháp khắc phục

Nếu bạn không thể nâng cấp, bản vá monkey sau có thể được áp dụng như một biện pháp khắc phục cho Fiddle:

class Fiddle::Handle
  alias :old_initialize :initialize

  def initialize file, *args
    raise SecurityError if file.tainted? && $SAFE > 0
    old_initialize file, *args
  end

  alias :sym :[]
  alias :old_call :[]

  def [] fun
    raise SecurityError if fun.tainted? && $SAFE > 0
    old_call fun
  end
end

Nếu bạn đang sử dụng DL, hãy sử dụng Fiddle thay thế.

Ghi nhận

Cảm ơn Christian Hofstaedtler zeha@debian.org đã báo cáo vấn đề này!

Lịch sử

  • Được công bố lần đầu vào 2015-12-16 12:00: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...