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#packString#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 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

Thêm Tin...