Сканеры атакуют открытые Langflow и Rails: у первого нет патча, у второго есть
Обе дыры известны с зимы, но волна эксплуатации началась сейчас. Для Rails исправление есть, для Langflow в advisory версия с патчем не указана, и единственная мера — закрыть доступ.

Компания VulnCheck, по сообщению The Hacker News от 1 сентября, зафиксировала сотни попыток эксплуатации двух критических уязвимостей на своих ловушках: CVE-2026-0768 в Langflow, визуальном конструкторе ИИ-приложений на Python, и CVE-2026-66066 в Ruby on Rails. Первая позволяет без пароля выполнить произвольный Python-код от имени root, вторая — прочитать любые файлы сервера, включая ключи и пароли к базе, отправив специально собранную картинку.
Обе дыры не новые: advisory по Langflow опубликован в GitHub Advisory Database ещё 23 января, но исправленная версия в нём не указана, а ZDI в бюллетене ZDI-26-034 называет единственной мерой ограничение доступа к сервису. Для Rails исправления есть. Если у вас в проде или на тестовом сервере стоит Langflow либо Rails-приложение принимает файлы от пользователей, проверять нужно сегодня.
Ключевые выводы
- CVE-2026-0768, Langflow: CVSS 9.8, CWE-94, инъекция кода через параметр code в эндпоинте /api/v1/validate/code, аутентификация не нужна, код выполняется от root; исправленная версия в advisory не указана.
- CVE-2026-66066, Rails Active Storage: CVSS 9.5, чтение произвольных файлов при обработке изображений через libvips; уязвимы activestorage до 7.2.3.2, 8.0.x до 8.0.5.1 и 8.1.x до 8.1.3.1.
- VulnCheck насчитала 360 срабатываний на ловушках в нескольких странах; в запросах ищут ключи OpenAI и AWS, файл secret_key Langflow, папку .ssh и историю shell.
- Rails закрывается обновлением activestorage вместе с libvips не ниже 8.13; для Langflow единственная подтверждённая мера — ограничить доступ к сервису доверенными пользователями и сетями.
- При признаках эксплуатации считайте доступные секреты скомпрометированными и меняйте их.
Langflow: код в параметре code и никакого патча
Langflow — популярный инструмент, где ИИ-пайплайны собираются мышкой из блоков, а под капотом это Python-приложение. У него есть служебный эндпоинт /api/v1/validate/code, который проверяет пользовательский код компонента. Проверка входа там оказалась недостаточной: код из параметра выполняется, а эндпоинт не требует аутентификации. Langflow часто разворачивают в Docker от root, поэтому атакующий получает полный контроль над контейнером и всем, что в нём лежит: ключами моделей, токенами, доступами к базам.
Authentication is not required to exploit this vulnerability.
Это уже второй раз, когда тот же эндпоинт подводит: в 2025 году в нём же нашли CVE-2025-3248. По данным VulnCheck, в запросах атакующие целятся в переменные окружения LANGFLOW_SUPERUSER, OPENAI_API*, AWS_ACCESS*, AWS_SECRET*, файл /root/.cache/langflow/secret_key, каталог .ssh и .bash_history. Цель — не сам Langflow, а всё, к чему у него есть ключи. По данным VulnCheck, основной источник трафика на ловушки Langflow находился в России, а попадания фиксировались на canary-системе в Великобритании; атаки на Rails приходили на ловушки в Сингапуре, Израиле и Великобритании.
Rails: картинка, которая читает файлы
В Rails уязвим Active Storage, стандартный механизм загрузки файлов. Когда приложение обрабатывает изображение, оно передаёт файл в библиотеку libvips. Специально собранный файл заставляет libvips прочитать произвольный путь на сервере и вернуть содержимое в результирующем изображении. Так утекают secret_key_base, master key Rails, пароли БД и облачные учётные данные, а с ними в ряде конфигураций возможно и выполнение кода. Исследователи назвали уязвимость KindaRails2Shell.
Условия эксплуатации по advisory: libvips как бэкенд обработки и возможность для недоверенного пользователя загрузить файл. Если у вас ImageMagick или файлы грузят только администраторы, риск ниже, но обновиться всё равно стоит. Исправленные версии gem activestorage: 7.2.3.2, 8.0.5.1 и 8.1.3.1; advisory требует также libvips не ниже 8.13 и рекомендует заменить секреты.
Что сделать сегодня
- Langflow: ограничьте доступ ко всему сервису доверенными пользователями и сетями (VPN, reverse proxy с аутентификацией); это единственная мера, которую называет ZDI, потому что исправленной версии в advisory нет. Следите за релизами проекта.
- Проверьте логи на запросы к
/api/v1/validate/codeс чужих адресов; нашли — считайте все ключи в окружении скомпрометированными и ротируйте их. - Rails:
bundle update activestorage railsдо 7.2.3.2, 8.0.5.1 или 8.1.3.1 и выше, обновите libvips до 8.13 или новее; проверьтеGemfile.lock. - Пока не обновились: на libvips 8.13 и новее включите блокировку недоверенных операций (переменная
VIPS_BLOCK_UNTRUSTEDилиVips.block_untrusted(true)), для более старых версий обхода advisory не даёт, остаётся отключить обработку файлов от пользователей. - После инцидента меняйте
secret_key_baseи master key: с их утечкой атакующий подделывает сессии и расшифровывает credentials.
Контекст
Обе уязвимости известны с зимы, но волна эксплуатации началась, когда появился рабочий эксплойт и его добавили в автоматические сканеры. VulnCheck отдельно отмечает, что запросы приходили на ловушки в разных странах, то есть кампания не целевая, а ковровая: сканеры ищут любой доступный снаружи экземпляр. Langflow особенно распространён во внутренних ИИ-экспериментах, которые поднимают «на минутку» с публичным IP и забывают, и именно такие установки первыми находят сканеры.
Источники: Attackers exploit critical Langflow and Rails flaws (The Hacker News), GHSA-x5pr-rvjj-j6qm: Langflow code injection, GHSA-xr9x-r78c-5hrm: Active Storage arbitrary file read, ZDI-26-034
Изображение на обложке: Langflow, Ruby on Rails











