Cảnh báo lỗ hổng nghiêm trọng trong Ruby on Rails: Kẻ tấn công có thể đọc file server qua ảnh tải lên
Một lỗ hổng bảo mật nghiêm trọng (CVE-2026-66066) trong Active Storage của Ruby on Rails cho phép kẻ tấn công không cần xác thực đọc các file nhạy cảm trên server thông qua việc tải lên hình ảnh đã...
Cộng đồng Ruby on Rails vừa ghi nhận một lỗ hổng bảo mật nghiêm trọng, được định danh là CVE-2026-66066 với điểm CVSS lên tới 9.5. Lỗ hổng này nằm trong thành phần Active Storage, cho phép kẻ tấn công không cần xác thực có thể đọc các file tùy ý trên server thông qua các tệp ảnh được thiết kế đặc biệt.
Nguy cơ từ lỗ hổng CVE-2026-66066
Việc khai thác thành công lỗ hổng này có thể làm lộ các thông tin nhạy cảm trong môi trường Rails, bao gồm secret_key_base, khóa master của Rails, mật khẩu cơ sở dữ liệu, thông tin xác thực cloud storage và các API token. Những dữ liệu này là chìa khóa để kẻ tấn công thực hiện các cuộc tấn công leo thang, chiếm quyền điều khiển từ xa (RCE) hoặc di chuyển ngang (lateral movement) trong hệ thống.
Lỗ hổng xuất phát từ sự thiếu hụt trong việc kiểm soát tại ranh giới giữa Active Storage và thư viện xử lý ảnh libvips. Cụ thể, libvips hỗ trợ một số thao tác xử lý ảnh từ các thư viện bên thứ ba vốn không an toàn với dữ liệu đầu vào độc hại. Active Storage đã không chặn các thao tác này, tạo điều kiện cho kẻ tấn công thực thi các lệnh nguy hiểm.
Các phiên bản bị ảnh hưởng
Theo các chuyên gia bảo mật từ Ethiack và GMO Flatt Security, các phiên bản bị ảnh hưởng bao gồm:
- Rails 7.0.0 đến 7.2.3.1
- Rails 8.0.0 đến 8.0.5
- Rails 8.1.0 đến 8.1.3
- Các phiên bản Rails 6.0.0 đến 6.1.7.10 (nếu cấu hình Active Storage sử dụng Vips)
Các ứng dụng sử dụng MiniMagick không bị ảnh hưởng bởi lỗ hổng này.
Khuyến nghị khắc phục
Nhóm phát triển Ruby on Rails đã phát hành các bản vá khẩn cấp. Người vận hành hệ thống cần thực hiện các bước sau ngay lập tức:
- Cập nhật phiên bản: Nâng cấp lên Rails 7.2.3.2, 8.0.5.1 hoặc 8.1.3.1.
- Xoay vòng thông tin bảo mật (Rotate secrets): Sau khi cập nhật, cần thay đổi toàn bộ các thông tin xác thực (credentials) có thể đã bị lộ như
secret_key_base, mật khẩu database, và các API token. - Cấu hình libvips: Đảm bảo hệ thống sử dụng
libvipsphiên bản 8.13 trở lên vàruby-vipsphiên bản 2.2.1 trở lên. Đối với các ứng dụng chưa thể cập nhật Rails ngay, có thể thiết lập biến môi trườngVIPS_BLOCK_UNTRUSTED=1hoặc gọi hàmVips.block_untrusted(true)để giảm thiểu rủi ro.
Lưu ý rằng việc áp dụng bản vá không làm mất hiệu lực của các thông tin xác thực đã bị đánh cắp trước đó, vì vậy việc xoay vòng mật khẩu và khóa bảo mật là bước bắt buộc để đảm bảo an toàn hệ thống.
Nguồn tham khảo: The Hacker News

No Comment! Be the first one.