Lỗ hổng bỏ qua kiểm tra hostname trong SSL client (CVE-2013-4073)
Đăng bởi nahi vào 27 Jun 2013
Một lỗ hổng trong SSL client của Ruby có thể cho phép kẻ tấn công man-in-the-middle giả mạo các SSL server thông qua chứng chỉ hợp lệ được cấp bởi cơ quan chứng nhận đáng tin cậy.
Lỗ hổng này đã được gán mã CVE CVE-2013-4073.
Tóm tắt
SSL client của Ruby triển khai kiểm tra định danh hostname nhưng không xử lý đúng cách các hostname trong chứng chỉ có chứa byte null.
Chi tiết
OpenSSL::SSL.verify_certificate_identity triển khai kiểm tra Định danh
Server theo RFC2818 cho SSL client của Ruby nhưng không xử lý đúng cách các
hostname trong extension subjectAltName X509 có chứa byte null.
Mã hiện tại trong lib/openssl/ssl.rb sử dụng OpenSSL::X509::Extension#value
để trích xuất định danh từ subjectAltName. Extension#value phụ thuộc vào hàm
OpenSSL X509V3_EXT_print() và đối với dNSName của subjectAltName, nó sử dụng
sprintf() được biết là không an toàn với byte null. Do đó,
Extension#value trả về ‘www.ruby-lang.org’ nếu subjectAltName là
‘www.ruby-lang.org\0.example.com’ và
OpenSSL::SSL.verify_certificate_identity xác định sai chứng chỉ là chứng
chỉ cho ‘www.ruby-lang.org’.
Khi một CA được SSL client tin tưởng cho phép cấp chứng chỉ server có byte null trong subjectAltName, kẻ tấn công từ xa có thể lấy chứng chỉ cho ‘www.ruby-lang.org\0.example.com’ từ CA để giả mạo ‘www.ruby-lang.org’ và thực hiện tấn công man-in-the-middle giữa SSL client của Ruby và các SSL server.
Phiên bản bị ảnh hưởng
- Tất cả phiên bản ruby 1.8 trước ruby 1.8.7 patchlevel 374
- Tất cả phiên bản ruby 1.9 trước ruby 1.9.3 patchlevel 448
- Tất cả phiên bản ruby 2.0 trước ruby 2.0.0 patchlevel 247
- Trước trunk revision 41671
Giải pháp
Tất cả người dùng được khuyến nghị nâng cấp lên Ruby 2.0.0-p247, 1.9.3-p448 hoặc 1.8.7-p374.
Ghi nhận
Lỗ hổng này được phát hiện bởi William (B.J.) Snow Orvis và được điều phối với security@ruby-lang.org bởi David Thiel từ iSEC Partners.
Lịch sử
- Được công bố lần đầu vào 2013-06-27 11: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