CVE-2015-1855: Xác nhận Hostname Ruby OpenSSL

Tiện ích OpenSSL của Ruby có một nhược điểm khi có quá nhiều các hostnames tương ứng, có thể dẫn đến lỗi tương tự như CVE-2014-1492. Các lỗi tương tự như vậy cũng được tìm thấy trong Python.

Lỗ hỗng này đã được xác định trong CVE-2015-1855.

Đó là lý do các bạn nên nâng cấp Ruby.

Chi tiết

Sau khi xem qua RFC 6125RFC 5280, chúng tôi đã tìm thấy nhiều vi phạm của các hostname tương ứng, đặc biệt là xác nhận các ký tự đại diện.

Hiện tại, tiện ích OpenSSL của Ruby sẽ cung cấp một chuỗi dựa trên các thuộc toán tương ứng, nghiêm ngặt dựa theo các khuyến cáo của các RFC. Đặc biệt, việc kết hợp của nhiều hơn một ký tự đại diện cho mỗi vấn đề/SAN không còn được cho phép. Đồng thời, bây giờ việc so sánh các giá trị sẽ không còn nhạy cảm.

Sự thay đổi này sẽ có ảnh hưởng đến OpenSSL::SSL#verify_certificate_identity của Ruby.

Cụ thể ở đây:

  • Chỉ một ký tự đại diện trong phần bên trái của hostname được cho phép.
  • Hiện tại, các tên IDNA chỉ tương ứng với một ký tự đại diện đơn giản (ví dụ ‘*.domain’).
  • Vấn đề/SAN sẽ được giới hạn chỉ là ký tự ASCII.

Tất cả mọi người đang hoạt động trên các phiên bản bị ảnh hưởng này nên nâng cấp ngay.

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

  • Tất cả phiên bản đầu tiên của Ruby 2.0 đến bản vá 2.0.0 p645
  • Tất cả phiên bản đầu tiên của Ruby 2.1 đến Ruby 2.1.6
  • Tất cả phiên bản đầu tiên của Ruby 2.2 đến Ruby 2.2.2
  • Sửa đổi đầu tiên 50292

Ghi nhận

Chúng tôi xin gửi lời cảm ơn đến Tony Arcieri, Jeffrey Walton, và Steffan Ullrich vì đã thông báo vấn đề này. Nguyên bản báo cáo tại Bug #9644, và các bản vá đã được gửi bởi Tony Arcieri và Hiroshi Nakamura.

Lịch sử

  • Được chính thức phát hành lúc 2015-04-13 12:00:00 (UTC)