CVE-2021-41817: Lỗ hổng Regular Expression Denial of Service của các phương thức phân tích Date
Đăng bởi mame vào 15 Nov 2021
Chúng tôi đã phát hành gem date phiên bản 3.2.1, 3.1.2, 3.0.2 và 2.0.1 bao gồm bản vá bảo mật cho lỗ hổng regular expression denial of service (ReDoS) trong các phương thức phân tích date. Kẻ tấn công có thể khai thác lỗ hổng này để gây ra tấn công DoS hiệu quả. Lỗ hổng này đã được gán mã định danh CVE CVE-2021-41817.
Chi tiết
Các phương thức phân tích của Date bao gồm Date.parse sử dụng Regexp nội bộ, một số trong đó dễ bị tấn công regular expression denial of service. Các ứng dụng và thư viện áp dụng các phương thức này cho đầu vào không đáng tin cậy có thể bị ảnh hưởng.
Bản vá giới hạn độ dài đầu vào tối đa 128 byte theo mặc định thay vì thay đổi các regexp. Điều này là do gem Date sử dụng nhiều Regexp và có thể vẫn còn các Regexp dễ bị tấn công chưa được phát hiện. Để tương thích, cho phép loại bỏ giới hạn bằng cách truyền tham số limit rõ ràng là nil như Date.parse(str, limit: nil), nhưng lưu ý rằng có thể mất nhiều thời gian để phân tích.
Vui lòng cập nhật gem date lên phiên bản 3.2.1, 3.1.2, 3.0.2 và 2.0.1 hoặc mới hơn. Bạn có thể sử dụng gem update date để cập nhật. Nếu bạn đang sử dụng bundler, vui lòng thêm gem "date", ">= 3.2.1" vào Gemfile của bạn.
Ngoài ra, bạn có thể cập nhật Ruby lên 3.0.3, 2.7.5, 2.6.9 hoặc mới hơn.
Các phiên bản bị ảnh hưởng
- date gem 2.0.0 hoặc trước đó (là phiên bản đi kèm với dòng Ruby 2.6 trước Ruby 2.6.9)
- date gem 3.0.1 hoặc trước đó (là phiên bản đi kèm với dòng Ruby 2.7 trước Ruby 2.7.5)
- date gem 3.1.1 hoặc trước đó (là phiên bản đi kèm với dòng Ruby 3.0 trước Ruby 3.0.3)
- date gem 3.2.0 hoặc trước đó
Ghi công
Cảm ơn svalkanov đã phát hiện vấn đề này.
Lịch sử
- Công bố lần đầu vào 2021-11-15 08:00:00 (UTC)
- Đề cập về các bản phát hành Ruby mới vào 2021-11-24 13:20: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