
CVE-2026-66066 (KindaRails2Shell) PoC — произвольное чтение файлов в Rails Active Storage/libvips с последующим выполнением кода (RCE); для авторизованного тестирования безопасности
Произвольное чтение файлов → условное удалённое выполнение кода (RCE) — PoC-инструмент для Ruby on Rails Active Storage + libvips.
Однофайловый, Python 3.11+, чистая стандартная библиотека, без зависимостей, со встроенными гибридными нагрузками MAT/HDF5, чистым Python-декодером пикселей PNG, чтением со смещением, восстановлением ключей, режимами RCE и сканирования.
Rails доверяет content_type, сообщаемому клиентом (на конечной точке прямой загрузки), а libvips определяет magic bytes файла — один и тот же файл на двух уровнях воспринимается как два разных формата. Атакующий создаёт гибридный файл, в котором «первые 10 байт текста заявляют MATLAB 5.0, а байты 124–125 (слово версии) объявляют MAT 7.3 (HDF5)», и через механизм HDF5 External File List читает произвольные файлы на сервере (по умолчанию /proc/self/environ). После восстановления SECRET_KEY_BASE подделывает подписанный variation и условно выполняет команды.
< 7.2.3.2 / / >= 8.0, < 8.0.5.1>= 8.1, < 8.1.3.1python3 kr2s.py <command> [options]
| Команда | Описание |
|---|---|
check | Загружает blob, чтобы подтвердить, что целевой файл доступен для чтения (инвазивно) |
read <path> | Восстанавливает префикс фиксированного размера указанного файла (двоичный вывод) |
secrets | Восстанавливает переменные окружения процесса и файлы учётных данных Rails (по умолчанию маскируются, --show-full показывает полные значения) |
rce | Восстанавливает secret_key_base и условно выполняет команды (--skb позволяет пропустить чтение окружения) |
probe | Определяет доступные на цели недоверенные загрузчики libvips |
scan | Многопоточное пассивное/активное сканирование (--active загружает вредоносный blob для canary-чтения) |
Общие параметры: URL цели / имя хоста / пакетные файлы, --entry, --proxy, пользовательские пути, параметры TLS, таймауты, User-Agent и т.д. Подробнее см. python3 kr2s.py --help.
cd lab
RAILS_VERSION=8.1.3 docker compose up --build
Только для исследований в области безопасности, проверки уязвимостей и защитного тестирования. Команды read / check / scan --active / rce загружают на цель постоянные blob и выполняют на ней команды. Запускайте только в одноразовом Docker lab, не используйте против несанкционированных целей.