CVE-2025-3248 — уязвимость в Langflow, связанная с выполнением произвольного кода (RCE) на уязвимой конечной точке
/api/v1/validate/code. ❗️ Уязвимы все версии до 1.3.0. Рекомендуем обновиться.
Langflow — инструмент с открытым исходным кодом, предназначенный для создания и управления потоками работы с использованием моделей искусственного интеллекта.
Метрики
Base score: 9,8
CWE: 306
Полезная нагрузка
{
"code": """
def test(cd=exec('raise Exception(__import__("subprocess").check_output("ls -la", shell=True))')):
pass
"""
}Разберем детальнее:
code — ключ для передачи Python-кода;exec() — позволяет выполнять строки кода Python;subprocess.check_output("ls -la", shell=True) — эта команда выполняет системную команду ls -la через оболочку (shell). В результате возвращается список файлов и директорий в текущем каталоге;raise Exception(...) — исключение, которое вызывается после выполнения команды ls -la.На что важно обратить внимание
1️⃣ Из-за того, что на конечной точке
/api/v1/validate/code нет аутентификации, злоумышленник может отправить такой код через HTTP-запрос.2️⃣ Код будет выполнен на сервере — это позволяет атакующему осуществить произвольные команды, например, вывести список файлов на сервере или даже изменить состояние системы.
3️⃣ Код может представлять из себя все что угодно, он не обязательно должен соответствовать примеру выше.
Как защититься
✅ Ограничить доступ из сети интернет к данному API.
✅ Написать правило, блокирующее POST-запросы к уязвимому URL, содержащее заголовок
Content-Type: application/json и тело, в котором присутствуют python-операторы — например, exec, Exception, import, print, system.