Открытый исходный код перестал быть синонимом безопасности, особенно когда речь заходит о популярных инструментах для работы с искусственным интеллектом. Инцидент с фреймворком Langflow, произошедший в марте 2026 года, наглядно демонстрирует, насколько сжались временные рамки между публикацией информации об уязвимости и её активным использованием злоумышленниками. Критическая проблема, позволяющая выполнять произвольный код без аутентификации, была эксплуатирована в дикой природе менее чем через сутки после выхода бюллетеня, причём атакующие обошлись без публичного доказательство концепции. Этот случай стал учебным примером скорости, с которой современные угрозы материализуются из теоретического описания в работающий инструмент взлома.
Описание
Фреймворк Langflow, набравший более 145 тысяч звёзд на GitHub, представляет собой визуальную среду для создания AI-агентов и конвейеров RAG (Retrieval-Augmented Generation, генерация, дополненная извлечением информации). Его ключевая особенность - drag-and-drop интерфейс, упрощающий построение сложных рабочих процессов. Однако именно один из публичных API-эндпоинтов, предназначенный для сборки общих потоков, стал источником проблемы. Уязвимость, получившая идентификатор CVE-2026-33017, заключалась в том, что этот эндпоинт принимал от пользователя данные, содержащие произвольный Python-код в определениях узлов, и выполнял его на сервере без какой-либо изоляции (сандбоксирования). Для успешной атаки требовался всего один HTTP-запрос, а наличие учётных данных было необязательным.
Специалисты Sysdig Threat Research Team (TRT, команда исследования угроз) обнаружили первые попытки эксплуатации примерно через 20 часов после публикации консультативного бюллетеня на GitHub. Примечательно, что в тот момент в открытом доступе не существовало готового эксплойта. Злоумышленники самостоятельно создали работающий код, основываясь исключительно на техническом описании в бюллетене, и начали массовое сканирование интернета в поисках уязвимых инстансов Langflow. Для наблюдения за активностью исследователи развернули сеть honeypot-ловушек - специально подготовленных уязвимых экземпляров в различных облачных провайдерах.
Наблюдения выявили чёткую эволюцию атак в течение первых 48 часов. Первая волна, начавшаяся спустя 20-21 час после публикации, представляла собой автоматизированное сканирование с четырёх разных IP-адресов. Все запросы содержали идентичную полезную нагрузку, которая выполняла команду "id" в системе, кодировала результат в base64 и отправляла его на внешний сервер через сервис Interactsh для проверки успешности эксплуатации. Заголовки запросов явно указывали на использование инструмента Nuclei, при этом в официальном репозитории шаблонов для этой уязвимости на тот момент не было. Это говорит о том, что атакующие либо оперативно написали собственный шаблон, либо использовали приватный.
Вторая фаза, развернувшаяся в последующие часы, отличалась более целеустремлённым подходом. Атакующие, использовавшие кастомные Python-скрипты, перешли от простой проверки уязвимости к активной разведке. Один из операторов методично выполнил перечисление содержимого критических каталогов, проверил файлы с учётными данными и попытался загрузить второй этап вредоносной нагрузки с предварительно подготовленного сервера. Наиболее продвинутая активность была зафиксирована от IP-адреса, который сосредоточился на сборе конфиденциальных данных. Злоумышленник выполнил дамп переменных окружения, что в типичном развёртывании Langflow могло раскрыть строки подключения к базам данных, API-ключи от облачных провайдеров и сервисов вроде OpenAI или Anthropic. Также были просканированы файловые системы в поисках конфигурационных файлов и баз данных.
Этот инцидент идеально вписывается в тревожный тренд, который отслеживает проект Zero Day Clock. Данные по более чем 83 тысячам уязвимостей показывают, что медианное время до эксплуатации (Time-to-Exploit, TTE) сократилось с 771 дня в 2018 году до нескольких часов в 2024-м. К 2023 году 44% эксплуатируемых уязвимостей были использованы в течение первых суток после раскрытия информации. При этом среднее время, необходимое организациям для установки заплаток, составляет около 20 дней, создавая критическое окно уязвимости. CVE-2026-33017 оказалась особенно привлекательной для атакующих по нескольким причинам: отсутствие необходимости в аутентификации, простота эксплуатации через один запрос, огромная потенциальная поверхность атаки из-за популярности инструмента и чрезвычайно высокая ценность компрометации, открывающая доступ к ключам AI-моделей и базам данных.
В условиях, когда окно для установки исправлений измеряется часами, на первый план выходят методы runtime-обнаружения (обнаружения во время выполнения), которые не требуют предварительного знания сигнатур конкретной уязвимости. Все наблюдаемые этапы атаки - выполнение shell-команд через "os.popen()", чтение чувствительных файлов вроде "/etc/passwd" или ".env", исходящие DNS-запросы к доменам сервисов типа Interactsh, загрузка и выполнение скриптов через "curl" - создают чёткие аномалии на уровне системных вызовов. Такое поведение может быть выявлено правилами, отслеживающими подозрительную активность, например, попытки чтения чувствительных файлов ненадёжным процессом или выполнение оболочки через утилиты загрузки.
Инцидент с Langflow служит жёстким напоминанием о том, что жизненный цикл уязвимостей в критически важном open-source ПО кардинально изменился. Описания в бюллетене теперь служат достаточной инструкцией для опытных угрозовых актёров, которые способны операционализировать угрозу быстрее, чем большинство компаний успевает провести оценку рисков. Это требует пересмотра традиционных программ управления уязвимостями, смещения акцента в сторону активного мониторинга поведения приложений, строгого сетевого сегментирования и готовности к немедленному реагированию. Особое внимание следует уделять инструментам автоматизации и AI/ML-стеку, которые зачастую развёртываются командами разработки или data science в обход стандартных процедур безопасности, но при этом имеют доступ к самым ценным цифровым активам компании.
Индикаторы компрометации
IPv4
- 173.212.205.251
- 188.166.209.86
- 205.237.106.117
- 209.97.165.247
- 77.110.106.154
- 83.98.164.238
IPv4 Port Combinations
- 143.110.183.86:8080
- 173.212.205.251:8443
Domains
- d6tcpc6flblph01gdcb0ku9ixih393m54.oast.live
- d6tcpe7nsv6kk9rdrpggi37zmjfxw9imr.oast.me
- d6td5s9qte0bea7273e0wuou77jjx77uk.oast.pro
- d6tgbe1qte0a8rkffb3gqabqm8517exd3.oast.fun
URLs
- http://143.110.183.86:8080/
- http://173.212.205.251:8443/z