CVE-2018-16396: Cờ tainted không được truyền trong Array#pack và String#unpack với một số directive
Đăng bởi usa vào 17 Oct 2018
Trong Array#pack và String#unpack với một số định dạng, cờ tainted
của dữ liệu gốc không được truyền sang chuỗi/mảng trả về.
Lỗ hổng này đã được gán mã nhận dạng CVE
CVE-2018-16396.
Chi tiết
Phương thức Array#pack chuyển đổi nội dung của receiver thành một chuỗi với
định dạng được chỉ định. Nếu receiver chứa một số đối tượng tainted, chuỗi
trả về cũng phải được đánh dấu tainted. Phương thức String#unpack chuyển đổi
receiver thành một mảng cũng nên truyền cờ tainted
sang các đối tượng trong mảng trả về.
Tuy nhiên, với các directive B, b, H, và h, cờ tainted không được
truyền. Vì vậy, nếu một script xử lý đầu vào không đáng tin cậy bằng Array#pack
và/hoặc String#unpack với các directive này và kiểm tra độ tin cậy
bằng cờ tainted, việc kiểm tra có thể bị sai.
Tất cả người dùng đang chạy phiên bản bị ảnh hưởng nên nâng cấp ngay lập tức.
Phiên bản bị ảnh hưởng
- Dòng Ruby 2.3: 2.3.7 và trước đó
- Dòng Ruby 2.4: 2.4.4 và trước đó
- Dòng Ruby 2.5: 2.5.1 và trước đó
- Dòng Ruby 2.6: 2.6.0-preview2 và trước đó
- trước trunk revision r65125
Ghi nhận
Cảm ơn Chris Seaton đã báo cáo vấn đề này.
Lịch sử
- Được công bố lần đầu vào 2018-10-17 14: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