Tràn bộ nhớ Heap trong phân tích YAML URI Escape (CVE-2014-2525)

Đăng bởi hone and zzak vào 29 Mar 2014

Có một lỗi tràn bộ nhớ trong phân tích URI escape của YAML trong Ruby. Lỗ hổng này đã được gán mã định danh CVE CVE-2014-2525.

Chi tiết

Bất cứ khi nào một chuỗi trong YAML có tag được phân tích, một chuỗi được tạo đặc biệt có thể gây ra tràn heap dẫn đến thực thi mã tùy ý.

Ví dụ:

YAML.load <code_from_unknown_source>

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

Ruby 1.9.3-p0 trở lên bao gồm psych làm bộ phân tích YAML mặc định. Bất kỳ phiên bản psych nào liên kết với libyaml <= 0.1.5 đều bị ảnh hưởng.

Và, các phiên bản Ruby sau đi kèm phiên bản libyaml bị ảnh hưởng:

  • Ruby 2.0.0-p451 và trước đó,
  • Ruby 2.1.0 và Ruby 2.1.1.

Bạn có thể xác minh phiên bản libyaml đang sử dụng bằng lệnh:

$ ruby -rpsych -e 'p Psych.libyaml_version'
[0, 1, 5]

Giải pháp

Người dùng cài đặt libyaml trên hệ thống được khuyến nghị cập nhật libyaml lên 0.1.6. Khi biên dịch lại Ruby, trỏ đến libyaml vừa cập nhật:

$ ./configure --with-yaml-dir=/path/to/libyaml

Người dùng không có libyaml hệ thống dựa vào libyaml nhúng được khuyến nghị cập nhật psych lên 2.0.5 có đi kèm libyaml 0.1.6:

$ gem install psych

hoặc, cập nhật Ruby của bạn lên 2.0.0-p481, 2.1.2 hoặc mới hơn.

Lịch sử

  • Công bố lần đầu vào 2014-03-29 01:49:25 UTC
  • Cập nhật công bố vào 2014-03-29 09:37:00 UTC
  • Cập nhật công bố vào 2014-05-09 03: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...