Критична уязвимост в сигурността (CVE-2026-66066) в Ruby on Rails (наричан още Rails), една от най-широко използваните рамки (frameworks) за изграждане на уебсайтове и уеб приложения, може да позволи на атакуващите да четат чувствителни файлове от сървъра и в някои случаи да поемат пълен контрол над него.

Флагът, наречен „KindaRails2Shell“ от изследователите, които са го открили, позволява на атакуващ да прекара компрометиран файл през функцията за качване на изображения на уебсайта и да го използва, за да разкрие тайните на сървъра.

Много уебсайтове ви позволяват да качвате изображения и след това да ви показват преоразмерена версия. Rails управлява това чрез вграден инструмент, наречен Active Storage, който разчита на библиотека за обработка на изображения, наречена libvips, за преоразмеряване.

Проблемът е в способността на libvips да отваря не само обикновени графични файлове. Тя също така ще зарежда слабо известни научни и специализирани файлови формати като MATLAB .mat файлове, медицински сканирания NIfTI, SVG и PDF файлове и др.

Инструментите, които libvips използва за отваряне на някои от тези формати, не са безопасни за изпълнение върху файлове, които идват от външни потребители, а Rails не ги изключваше. Поради това атакуващ може да създаде файл, който изглежда като безобидно изображение, но когато сървърът се опита да създаде миниатюра от него, файлът скрито указва на сървъра да прочете каквото поиска атакуващият.

„В конфигурацията си по подразбиране, приложение на Rails, което показва варианти на изображения, може да позволи на неавтентифициран атакуващ да чете произволни файлове от сървъра, включително средата на процеса. Тази среда обикновено съдържа secret_key_base и често идентификационни данни за външни системи, което от своя страна може да позволи ескалация до отдалечено изпълнение на код или странично движение към тези системи“, обясни член на основния екип на Rails.

Ако поддържате уебсайт или приложение, базирано на Rails, вие сте изложени на риск, ако:

  • Вашето приложение използва Active Storage с процесора по подразбиране за изображения (наречен „vips“), което е стандартната настройка от Rails 7 насам.
  • Вашето приложение позволява на потребителите да качват изображения чрез функции или директни качвания.
  • Работите с някоя от засегнатите версии на Active Storage 7.0 преди 7.2.3.2, както и версии 8.0 преди 8.0.5.1 и версии 8.1 преди 8.1.3.1.

„Версиите на Rails от 6.0.0 до 6.1.7.10 могат да бъдат засегнати само ако Active Storage е настроен извън настройките му по подразбиране, така че нормалната инсталация на 6.x не е изложена на тази уязвимост“, отбелязват изследователите от Ethiack.

„Моля, имайте предвид, че всяка функция, достъпна за потребителите, която приема качване на изображение и по-късно предоставя обработена версия (аватари, миниатюри, профилни снимки), също може да бъде засегната от тази уязвимост. Множество проекти и софтуер на трети страни, които използват Ruby on Rails, също могат да бъдат засегнати.“

Приложенията, конфигурирани да използват алтернативния процесор „ImageMagick“ вместо „vips“, не са засегнати.

CVE-2026-66066 е открита първо и докладвана от Андре Баптиста, Бруно Мендес и Рафаел Кастильо от изследователския екип на Ethiack, а след това независимо докладвана от RyotaK от изследователския екип на GMO Flatt Security.

Rails пусна корекция за сигурност на 29 юли 2026 г. във версии на Rails 7.2.3.2, 8.0.5.1 и 8.1.3.1.

Засегнатите потребители са призовани спешно да преминат към някоя от тези версии, да обновят libvips до версия 8.13 или по-нова и да подменят главния ключ на приложението си, идентификационните данни за бази данни, ключовете за услуги за съхранение (S3, GCS или Azure) и токените или ключовете за услуги на трети страни за всеки случай.

„Ако се използва libvips < 8.13, няма налични алтернативни методи за справяне, освен премахването на зависимостта към libvips от приложението“, добави екипът на Rails и отбеляза, че ако на системата е налична libvips >= 8.13, „приложенията могат да деактивират несигурните операции без обновяване на Rails чрез задаване на променливата на средата VIPS_BLOCK_UNTRUSTED, която libvips чете по време на инициализация.“

Доставчикът на сигурност Akamai заяви, че е координирал действията си с Ethiack преди публичното оповестяване, за да подготви защити за своите клиенти, и вече е внедрил правила за защитна стена за уеб приложения (WAF), насочени срещу атаката KindaRails2Shell.

Но както Akamai, така е изследователите от Ethiack подчертаха, че WAF не е заместител на инсталирането на корекции за сигурност.

„Въпреки че правилата на защитната стена за уеб приложения (WAF) могат да идентифицират и блокират известни модели на експлоатация, най-ефективната защита е своевременното прилагане на корекциите за сигурност, предоставени от доставчика, и подмяната на всички потенциално компрометирани идентификационни данни“, заявиха от Akamai.

Екипите на Rails и Ethiack първоначално задържаха подробностите за уязвимостта и кода за експлоатация, за да дадат време на всички да инсталират корекциите.

Въпреки това, други изследователи направиха обратен инженеринг на атаката и публикуваха доказателства за концепцията (PoC) скоро след разкриването, което подтикна изследователите от Ethiack да публикуват подробен технически анализ.

Екипът на Rails също така предостави инструменти, които организациите могат да използват, за да проверят дали приложението им е било отворено за атака, за колко време, както и дали някой се е възползвал от уязвимостта и до каква чувствителна информация е получил достъп.

В момента няма официални съобщения за активно експлоатиране на CVE-2026-66066 в реална среда, но предвид сериозността на проблема, рискът остава висок.