Tấn công Hash-flooding DoS đã được báo cáo cho hàm Hash mà dòng ruby 1.9 sử dụng. Lỗ hổng này khác với [CVE-2011-4815][1] cho ruby 1.8.7. Tất cả người dùng ruby 1.9 được khuyến nghị nâng cấp lên [ruby-1.9.3 patchlevel 327][2] để nhận bản vá bảo mật này.

## Tác động

Chuỗi các chuỗi ký tự được tạo cẩn thận có thể gây ra tấn công từ chối dịch vụ trên dịch vụ phân tích chuỗi đó để tạo đối tượng Hash bằng cách sử dụng các chuỗi ký tự làm khóa. Ví dụ, lỗ hổng này ảnh hưởng đến ứng dụng web phân tích dữ liệu JSON gửi từ thực thể không đáng tin cậy.

## Chi tiết

Lỗ hổng này tương tự với [CVE-2011-4815][1] cho ruby 1.8.7. Các phiên bản ruby 1.9 sử dụng hàm [MurmurHash đã sửa đổi][3] nhưng đã [được báo cáo rằng có cách tạo chuỗi các chuỗi ký tự mà giá trị hash của chúng va chạm với nhau][4]. Bản vá này thay đổi hàm Hash của đối tượng String từ MurmurHash sang [SipHash 2-4][5].

## Giải pháp

Vui lòng cập nhật lên [ruby-1.9.3 patchlevel 327][2] nếu bạn đang sử dụng phiên bản ruby 1.9. Vui lòng cập nhật lên trunk revision 37575 trở lên nếu bạn đang sử dụng ruby 2.0.0 preview1 hoặc ruby trunk. Ngoài ra, tất cả các ứng dụng ruby chấp nhận dữ liệu đầu vào từ thực thể không đáng tin cậy để phân tích nên giới hạn kích thước dữ liệu đầu vào ở mức hợp lý. Chúng tôi không chắc liệu có thể cung cấp bảo vệ chống lại loại lỗ hổng này ở cấp độ ngôn ngữ lập trình trong tương lai hay không.

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

* Tất cả phiên bản ruby 1.9 trước ruby 1.9.3 patchlevel 327
* Tất cả phiên bản ruby 2.0 (bao gồm 2.0.0 preview1) trước trunk
  revision 37575

## Ghi nhận

Lỗ hổng này được báo cáo bởi Jean-Philippe Aumasson, một trong những người thiết kế SipHash. Triển khai SipHash gốc cho bản vá này được trình bày bởi Martin Boßlet, một trong những committer của Ruby.

## Cập nhật

* Đã sửa lỗi chính tả vào 2012-11-21 22:16:00
* Ban đầu được đăng vào 2012-11-10 04:23:00



[1]: https://www.ruby-lang.org/vi/news/2011/12/28/denial-of-service-attack-was-found-for-rubys-hash-algorithm-cve-2011-4815/
[2]: https://www.ruby-lang.org/vi/news/2012/11/09/ruby-1-9-3-p327-is-released/
[3]: https://sites.google.com/site/murmurhash/
[4]: http://2012.appsec-forum.ch/conferences/#c17
[5]: https://www.131002.net/siphash/
