CVE-2015-7551: Sử dụng string nhiễm độc không an toàn ở Fiddle và DL

Đăng bởi usa vào 16 Dec 2015
Dịch bởi Nhat Tan

Có một lỗ hổng khi sử dụng string nhiễm độc không an toàn ở Fiddle và DL. Lỗ hổng này là đã được đánh dấu lỗi trên CVE CVE-2015-7551.

Chi tiết

Có một lỗ hổng string nhiễm độc không an toàn ở Fiddle và DL. Lỗi này ban đầu được báo cáo và sửa với CVE-2009-5147 ở DL, nhưng xuất hiện trở lại sau khi DL được triển khai lại bằng Fiddle và libffi.

Và, về DL, CVE-2009-5147 đã được sửa ở Ruby 1.9.1, nhưng không được sửa ở những nhánh khác, nên các phiên bản ruby được đóng gói cùng DL trừ Ruby 1.9.1 vẫn bị ảnh hưởng.

Mã bị ảnh hưởng trông giống như thế này:

handle = Fiddle::Handle.new(dangerous_user_input)

Hoặc:

handle = Fiddle::Handle.new(some_library)
function_pointer = handle[dangerous_user_input]

Tất cả người dùng đang chạy phiên bản bị ảnh hưởng nên nâng cấp hoặc sử dụng một trong những giải pháp thay thế ngay lập tức.

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

  • Tất cả các phiên bản vá lỗi của Ruby 1.9.2 và Ruby 1.9.3 (DL và Fiddle).
  • Tất cả các phiên bản vá lỗi của Ruby 2.0.0 trước Ruby 2.0.0 bản vá 648 (DL và Fiddle).
  • Tất cả các phiên bản của Ruby 2.1 trước Ruby 2.1.8 (DL và Fiddle).
  • Tất cả các phiên bản của Ruby 2.2 trước Ruby 2.2.4 (Fiddle).
  • Ruby 2.3.0 preview 1 và preview 2 (Fiddle).
  • Trước sửa đổi đầu tiên 53153 (Fiddle).

Giải pháp

Nếu bạn không thể nâng cấp, bản vá tạm sau có thể được áp dụng như một giải pháp thay thế cho Fiddle:

class Fiddle::Handle
  alias :old_initialize :initialize

  def initialize file, *args
    raise SecurityError if file.tainted? && $SAFE > 0
    old_initialize file, *args
  end

  alias :sym :[]
  alias :old_call :[]

  def [] fun
    raise SecurityError if fun.tainted? && $SAFE > 0
    old_call fun
  end
end

Nếu bạn đang dùng DL, hãy sử dụng Fiddle thay thế cho nó.

Công lao

Cảm ơn Christian Hofstaedtler zeha@debian.org đã thông báo lỗi này!

Lịch sử

  • Phát hành lần đầu vào lúc 2015-12-16 12:00:00 UTC

Tin mới nhất

Ra mắt Ruby 2.4.1

Chúng tôi hân hạnh công bố ấn bản Ruby 2.4.1. Đấy là bản TEENY đầu tiên của chuỗi ấn bản ổn định 2.4.

Đăng bởi naruse vào 22 Mar 2017

Phát hành Ruby 2.4.0

Chúng tôi rất hân hạnh được thông báo về việc phát hành Ruby phiên bản 2.4.0.

Đăng bởi naruse vào 25 Dec 2016

Phát hành Ruby 2.4.0-rc1

Chúng tôi rất hân hạnh được thông báo về việc phát hành Ruby phiên bản 2.4.0-rc1.

Đăng bởi naruse vào 12 Dec 2016

Thêm Tin...