CVE-2026-66066؛ باگ بحرانی Active Storage در Ruby on Rails
خلاصهٔ کاملتر
به گزارش Rapid7، پروژهٔ Ruby on Rails در 29 جولای 2026 برای CVE-2026-66066 هشدار امنیتی منتشر کرد؛ آسیبپذیریای با امتیاز CVSSv4 برابر 9.5 که پردازش تصویر Active Storage رو وقتی با کتابخانهٔ libvips کار میکنه هدف میگیره. هر اپی که آپلود عکس از کاربر ناشناس قبول کنه و پردازشگرش Vips باشه در خطره — و Vips از ریلز 7.0 به بعد پردازشگر پیشفرضه. طبق گزارش Ethiack، اپهایی که Magick استفاده میکنن از این مسیر آسیبپذیر نیستن.
ریشهٔ مشکل یه پیشفرض ناامنه: libvips یه سری عملیات داره که خودش «unfuzzed» یا «untrusted» علامتشون زده، چون برای محتوای غیرقابلاعتماد امن نیستن. به گفتهٔ تیم ریلز، Active Storage قبل از پردازش فایل کاربر این عملیات رو غیرفعال نمیکرد. نتیجه اینه که یه فایل ساختهشده میتونه یکی از همون عملیات ناامن رو فعال کنه و محتوای فایلهای خوندنی برای اپ رو به شکل پیکسلهای تصویر بیرون بده.
زنجیرهٔ حملهای که ریلز منتشر کرده از اندپوینت direct-upload شروع میشه؛ مسیری که وقتی روتهای Active Storage مانت بشن بهصورت پیشفرض فعاله، حتی اگه رابط خود اپ ازش استفاده نکنه. فایل مخرب خودش رو برای libvips یه فایل MATLAB و برای libmatio یه کانتینر HDF5 معرفی میکنه، و قابلیت External File List در HDF5 بایتهای یه مسیر دلخواه رو میخونه. نکتهٔ مهم اینه که مرحلهٔ خوندن فایل حتی به دونستن secret_key_base هم نیاز نداره.
مرحلهٔ بعدی خطرناکتره: Rapid7 تأیید کرده با کلیدهای امضای بازیابیشده میشه یه variation جعلی ساخت و به اجرای کد از راه دور رسید، بدون اینکه نیازی به deserialization مارشال باشه. ریلز اول قرار بود جزئیات رو تا 28 آگوست نگه داره، ولی بعد از اینکه چند محقق حمله رو مهندسی معکوس کردن، در 31 جولای جزئیات فنی و ابزارهای فارنزیک رو زودتر منتشر کرد.
برای رفع مشکل باید Active Storage رو به 7.2.3.2، 8.0.5.1 یا 8.1.3.1 آپدیت کرد و مطمئن شد libvips نسخهٔ 8.13 یا بالاتره — فقط آپدیت ریلز کافی نیست. اگه ruby-vips نصبه باید 2.2.1 یا جدیدتر باشه. بهعنوان راهحل موقت میشه با متغیر VIPS_BLOCK_UNTRUSTED یا فراخوانی Vips.block_untrusted(true) توی یه initializer عملیات ناامن رو بست. ریلز توصیه کرده secret_key_base و بقیهٔ سکرتهای در دسترس اپ هم چرخونده بشن.
نکات کلیدی:
- CVE-2026-66066 با امتیاز 9.5 اپهای ریلزی رو هدف میگیره که Active Storage با پردازشگر Vips دارن
- مهاجم ناشناس میتونه فایلهای خوندنی برای اپ رو بیرون بکشه و به سکرتها برسه
- نسخههای اصلاحشده: 7.2.3.2، 8.0.5.1 و 8.1.3.1، همراه با libvips نسخهٔ 8.13 یا بالاتر
- راهحل موقت: بستن عملیات untrusted در libvips از طریق تنظیمات
- ریلز ابزار فارنزیک منتشر کرده و توصیه به تعویض همهٔ سکرتها کرده




