Tệp ảnh độc hại đi vào máy chủ Ruby on Rails qua Active Storage

CVE-2026-66066 trên Ruby on Rails bị nhắm tới: Kiểm tra Active Storage ngay

CVE-2026-66066 cho phép đọc tệp qua Active Storage và có thể dẫn tới RCE. Kiểm tra phiên bản Rails, libvips, vá và đổi khóa bí mật ngay.

Bởi Võ Danh — 1 Tháng 9, 2026 trong Bảo mật

0 bình luận

CVE-2026-66066 trên Ruby on Rails đã có dấu hiệu bị nhắm tới sau khi chi tiết kỹ thuật được công bố. Lỗi nằm trong cách Active Storage xử lý ảnh bằng libvips. Một tệp được tạo có chủ đích có thể khiến máy chủ đọc tệp nội bộ, lộ khóa bí mật và trong một số cấu hình dẫn tới thực thi mã từ xa. Nếu ứng dụng Rails cho người lạ tải ảnh đại diện, ảnh sản phẩm hoặc tệp đính kèm, đây là việc nên kiểm tra ngay sáng nay.

Nhóm Ruby on Rails xếp lỗ hổng ở mức Critical, CVSS 9,5. Các bản tin bảo mật ngày 31/8 cho biết hoạt động khai thác hoặc dò tìm đã bắt đầu xuất hiện sau thời hạn công bố kỹ thuật ngày 28/8. Chưa có xác nhận CISA KEV tại thời điểm kiểm tra, vì vậy đừng biến câu “đang bị nhắm tới” thành lý do để đoán bừa IOC. Việc cần làm rõ nhất vẫn là xác định máy chủ có đúng cấu hình bị ảnh hưởng hay không.

CVE-2026-66066 ảnh hưởng hệ thống nào?

Ứng dụng có rủi ro khi dùng Active Storage, xử lý biến thể ảnh bằng libvips và nhận ảnh từ người dùng không đáng tin cậy. Rails 7 đặt :vips làm bộ xử lý mặc định, nên nhiều ứng dụng dùng cấu hình khá phổ biến này mà không để ý. ImageMagick không bị ảnh hưởng bởi đúng chuỗi tấn công này.

  • activestorage trước 7.2.3.2.
  • Dòng 8.0 từ 8.0.0 đến trước 8.0.5.1.
  • Dòng 8.1 từ 8.1.0 đến trước 8.1.3.1.

Rails 6 chỉ bị ảnh hưởng trong một số cấu hình Active Storage không mặc định. Tuy nhiên, đừng kết luận an toàn chỉ dựa vào số phiên bản Rails. Hãy kiểm tra Gemfile.lock, phiên bản activestorage, bộ xử lý ảnh thực tế và phiên bản libvips đang chạy trong container hoặc máy chủ production.

Quy trình giảm thiểu CVE-2026-66066 từ kiểm tra upload đến cập nhật Rails
Đừng chỉ nâng gem rồi coi như xong. Bản vá cần libvips 8.13 trở lên, và bí mật từng nằm trong môi trường ứng dụng có thể phải đổi.

Vì sao lỗi đọc tệp có thể thành RCE?

Tệp mà tiến trình Rails đọc được có thể gồm biến môi trường, secret_key_base, khóa giải mã credentials, mật khẩu cơ sở dữ liệu hoặc khóa truy cập S3. Có khóa phù hợp, kẻ tấn công có thể làm giả dữ liệu đã ký, chiếm phiên hoặc đi sang dịch vụ khác. Rails cảnh báo rằng một chuỗi cụ thể có thể tiến tới thực thi mã từ xa, nhưng cố ý không đưa mã khai thác vào khuyến cáo.

Điểm hơi khó chịu là cài bản vá chỉ đóng cửa từ bây giờ. Nó không thu hồi bí mật đã bị đọc trước đó. Nếu log cho thấy upload đáng ngờ hoặc bạn không thể chứng minh hệ thống chưa phơi ra Internet, hãy xử lý như một sự cố tiềm ẩn.

Cách vá CVE-2026-66066 và xử lý sau vá

  1. Nâng activestorage lên 7.2.3.2, 8.0.5.1, 8.1.3.1 hoặc bản mới hơn phù hợp với nhánh đang dùng.
  2. Nâng libvips lên ít nhất 8.13. Bản cũ hơn không thể chặn nhóm thao tác không an toàn mà bản vá Rails dựa vào.
  3. Nếu chưa thể nâng Rails nhưng đã có libvips 8.13+, đặt VIPS_BLOCK_UNTRUSTED; với ruby-vips 2.2.1+, có thể gọi Vips.block_untrusted(true) trong initializer. Đây là cầu tạm, không phải chỗ nghỉ lâu dài.
  4. Đổi secret_key_base, master key, thông tin database, khóa lưu trữ và token dịch vụ có thể đọc từ môi trường. Việc đổi secret_key_base sẽ đăng xuất các phiên đang hoạt động.
  5. Rà log upload và xử lý ảnh, tiến trình con bất thường, truy cập tệp nhạy cảm và kết nối ra ngoài từ worker. WAF có thể hỗ trợ nhưng không thay bản vá.

Nguồn kiểm chứng

Chân dung Võ Danh

Võ Danh

Người sáng lập danhvo.net — viết về AI, WordPress và tự động hóa dựa trên kinh nghiệm thực chiến, không lý thuyết suông. 8+ năm làm việc trong ngành công nghệ.

Viết một bình luận