Lỗ hổng DoS trong BigDecimal

Đăng bởi Urabe Shyouhei vào 9 Jun 2009

Một lỗ hổng từ chối dịch vụ (DoS) đã được phát hiện trong thư viện chuẩn BigDecimal của Ruby. Việc chuyển đổi từ đối tượng BigDecimal sang số Float có một vấn đề cho phép kẻ tấn công gây ra lỗi segfault.

ActiveRecord dựa vào phương thức này, nên hầu hết các ứng dụng Rails đều bị ảnh hưởng. Tuy nhiên đây không phải là vấn đề riêng của Rails.

Tác động

Kẻ tấn công có thể gây ra từ chối dịch vụ bằng cách khiến BigDecimal phân tích một số cực lớn, chẳng hạn như:

BigDecimal("9E69999999").to_s("F")

Các phiên bản bị ảnh hưởng

Dòng 1.8

  • 1.8.6-p368 và tất cả các phiên bản trước đó
  • 1.8.7-p160 và tất cả các phiên bản trước đó

Dòng 1.9

  • Tất cả các phiên bản 1.9.1 không bị ảnh hưởng bởi vấn đề này

Giải pháp

Dòng 1.8

Vui lòng nâng cấp lên 1.8.6-p369 hoặc ruby-1.8.7-p174.

Cập nhật

  • Ruby 1.8.7-p173 có một vấn đề. Nếu bạn đã tải về, vui lòng lấy phiên bản mới hơn. Ruby 1.8.6-p369 không có lỗi này.

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...