Lỗ hổng nghiêm trọng trong Rails cho phép ghi tệp tùy ý qua tải ảnh ImageMagick
Dự án Ruby on Rails vừa công bố một lỗ hổng nghiêm trọng trong Active Storage, thành phần xử lý tải tệp của Rails. Nếu ứng dụng xử lý ảnh tải lên bằng ImageMagick, kẻ tấn công chưa xác thực có thể ghi tệp tùy ý lên máy chủ. Lỗ hổng được đánh giá 9,8/10 theo thang CVSS, mã định danh GHSA-f3w6-w445-fwh9, chưa có mã CVE. Bản vá nằm trong Rails 8.1.4.1 và 8.0.5.2.
Cơ chế tấn công
ImageMagick chọn bộ xử lý định dạng (coder) dựa trên nội dung tệp. Một số coder lại thao tác trên các tệp khác được nêu tên bên trong ảnh, chứ không phải trên chính ảnh đó. Active Storage không giới hạn coder mà tệp tải lên được dùng, nên chính sách ImageMagick của máy chủ trở thành rào chắn duy nhất.
Bộ phân tích ImageMagick trong Active Storage chạy ngay khi tệp được đính kèm, không cần tạo biến thể ảnh hay gọi analyze. Theo commit vá lỗi, một tệp SVG tải lên đã chạm tới coder MSL của ImageMagick — loại coder dạng script có thể đọc và ghi các tệp được chỉ định trong script. Rails cho biết đã nhận báo cáo về một chuỗi tấn công nhưng không loại trừ khả năng còn chuỗi khác. Lỗ hổng do RyotaK, nhà nghiên cứu tại GMO Flatt Security, báo cáo qua HackerOne.
Với ứng dụng dùng Disk service của Active Storage, kẻ tấn công còn có thể đọc bất kỳ tệp nào ứng dụng đọc được, thường gồm secret_key_base và thông tin xác thực tới các hệ thống khác. Điều này có thể dẫn tới thực thi mã từ xa hoặc di chuyển ngang trong hệ thống.
Ứng dụng nào bị ảnh hưởng
Một ứng dụng chỉ bị ảnh hưởng khi thỏa cả ba điều kiện:
- Dùng ImageMagick để xử lý ảnh Active Storage, tức cấu hình config.active_storage.variant_processor = :mini_magick (mặc định với ứng dụng dùng load_defaults 6.1 trở về trước).
- Chính sách bảo mật ImageMagick chưa chặn các coder liên quan; Rails cho biết chính sách mặc định của Debian và Ubuntu không chặn.
- Nhận tải tệp từ người dùng không tin cậy.
Mọi phiên bản Active Storage trước 8.0.5.2 đều bị ảnh hưởng, tương tự các bản 8.1 trước 8.1.4.1. Các dòng phát hành cũ hơn 8.0 không còn được hỗ trợ và sẽ không có bản vá. Trước đó vào tháng 7, Rails đã vá một lỗ hổng Active Storage nghiêm trọng khác (CVE-2026-66066) ảnh hưởng ứng dụng dùng libvips thay vì ImageMagick.
Hai bản phát hành mới còn vá lỗ hổng thứ hai trong Active Storage, GHSA-v924-7rp8-4mxh, mức cao với điểm CVSS 8,8. Active Storage từng chuyển tệp tải lên cho ImageMagick và FFmpeg dưới tên tệp tạm giữ nguyên phần mở rộng gốc, khiến kẻ tấn công có thể chọn bộ giải mã được dùng.
Khuyến nghị xử lý
Rails khuyến nghị nâng cấp càng sớm càng tốt; hai bản phát hành vá tổng cộng 21 vấn đề bảo mật. Bản vá đi kèm chính sách bảo mật ImageMagick mới, chặn coder MSL, các coder đọc hoặc xóa tệp khác ngoài ảnh, coder truy xuất tham chiếu từ xa hoặc cục bộ, mọi coder dựa trên Ghostscript cùng delegate gs, và cơ chế @filename.
Ứng dụng dùng :mini_magick cần mini_magick 5.1 trở lên, nếu không sẽ báo lỗi khi khởi động. Rails 8.0 chỉ nhận bản vá bảo mật đến ngày 7/11/2026. Cần kiểm tra ứng dụng thực sự nạp chính sách mới bằng lệnh bin/rails runner 'puts MiniMagick.identify { |i| i.list "policy" }'.
Chính sách đi kèm không áp dụng nếu ứng dụng thay MiniMagick.cli_env sau khi khởi động, xóa biến môi trường bằng MiniMagick.cli_prefix, hoặc tự cài MiniMagick::Shell — khi đó phải đưa quy tắc vào chính sách hệ thống của ImageMagick. Ứng dụng dùng GraphicsMagick không được bảo vệ vì công cụ này không đọc chính sách ImageMagick. Cần rà lại policy.xml của máy chủ vì quy tắc cho phép coder, kể cả ký tự đại diện pattern="*", sẽ ghi đè chính sách mới.
Nếu chưa thể nâng cấp, có thể sao chép quy tắc từ tệp activestorage/lib/active_storage/image_magick/policy.xml vào chính sách hệ thống, tối thiểu chặn coder MSL, các coder Ghostscript và delegate gs. Với ứng dụng dùng Disk service, cần đổi secret_key_base và toàn bộ bí mật mà tiến trình ứng dụng đọc được, gồm master key, nội dung config/credentials.yml.enc, thông tin xác thực lưu trữ và cơ sở dữ liệu, cùng token bên thứ ba.
Nguồn: The Hacker News
Trích nguồn từ: The Hacker News
Tags:
Bài viết liên quan
CISA xác nhận tin tặc khai thác lỗ hổng WordPress Core trong lúc nâng cấp phần mềm
CISA đưa lỗ hổng WordPress Core vào danh mục lỗ hổng bị khai thác thực tế, với bằng chứng tấn công đang diễn ra nhắm vào cửa sổ nâng cấp.
Đọc thêm
Google phát hành bản vá cho lỗ hổng Android nghiêm trọng có thể cho phép RCE từ xa mà không cần người dùng tương tác
Bản tin bảo mật tháng 11 của Google vá 216 lỗ hổng, trong đó 23 lỗi nghiêm trọng, gồm CVE-2026-58868 có thể bị khai thác để chạy mã từ xa trên Android 14 đến 17 mà không cần người dùng thao tác.
Đọc thêm
Nhóm tin tặc liên quan APT29 chiếm đoạt script phân tích web để phát tán mã khai thác iOS và Android
Chiến dịch Poisoned Source do nhóm APT29 thực hiện nhắm vào người dùng iOS và Android qua các website bị xâm nhập, tên miền giả và tấn công chuỗi cung ứng dịch vụ phân tích web Plerdy SEO Tracker.
Đọc thêmOpenAI xây dựng quy trình tự động tìm và vá 948 lỗ hổng leo thang đặc quyền trong nhân Linux
OpenAI phát triển một pipeline tự động có khả năng phát hiện, xác thực và tạo bản vá cho 948 lỗ hổng leo thang đặc quyền cục bộ trong nhân Linux.
Đọc thêm
Lỗ hổng APT trên Debian và Ubuntu cho phép kẻ tấn công MitM tráo gói đã xác minh và chạy mã với quyền root
Lỗ hổng nghiêm trọng trong APT của Debian và Ubuntu cho phép kẻ tấn công MitM tráo gói cài đặt hợp lệ bằng mã độc, chạy với quyền root; bản vá đang được phát hành.
Đọc thêm
Lỗ hổng nghiêm trọng Siemens IoT2050 bị khai thác để cài backdoor điều khiển từ xa
VulnCheck phát hiện kẻ tấn công đang khai thác lỗ hổng điểm 10.0 trong thiết bị Siemens SIMATIC IoT2050 Advanced để cài mã độc và backdoor chạy lệnh từ xa.
Đọc thêm
Synology cảnh báo tấn công ransomware nhắm vào thiết bị NAS khai thác lỗ hổng DSM đã vá
Synology kêu gọi người dùng cập nhật DSM sau khi phát hiện tin tặc khai thác lỗ hổng đã vá từ tháng 12/2024 để mã hóa dữ liệu và tống tiền trên thiết bị NAS.
Đọc thêm
Lỗ hổng Barracuda có thể bị kết hợp để vượt qua kiểm soát truy cập và chiếm quyền root
Barracuda công bố hai lỗ hổng có thể bị khai thác kết hợp để vượt qua kiểm soát truy cập và giành quyền root trên thiết bị bị ảnh hưởng.
Đọc thêm
Chainstack bị tấn công: lộ dữ liệu khách hàng và mật khẩu đã băm
Chainstack xác nhận kẻ tấn công xâm nhập một phần hệ thống production, truy cập dữ liệu tài khoản khách hàng và mật khẩu đã băm; sự cố được cho là thuộc chiến dịch tấn công do AI dẫn dắt.
Đọc thêm
Cloudflare ra mắt Zero Wire: trung tâm theo dõi các lỗ hổng Internet nghiêm trọng
Cloudflare giới thiệu Zero Wire, nguồn tin tình báo lỗ hổng công khai trên Cloudflare Radar, giúp đội ngũ bảo mật hiểu nhanh các lỗ hổng nghiêm trọng và biết cần làm gì tiếp theo.
Đọc thêm