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
endNế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 3.2.10
Ruby 3.2.10 đã được phát hành.
Đăng bởi hsbt vào 14 Jan 2026
Phát hành Ruby 4.0.1
Ruby 4.0.1 đã được phát hành.
Đăng bởi k0kubun vào 13 Jan 2026
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