
Riproduzione educativa della vulnerabilità di attraversamento dei percorsi CVE-2026-14628 con esempi di codice vulnerabile e sicuro, spiegazione della correzione e demo eseguibili per lo studio di CWE-22.
Una dimostrazione minima ed eseguibile della classe di vulnerabilità Path Traversal (CWE-22), utilizzando la recentemente divulgata CVE-2026-14628 come punto di riferimento reale.
CVE-2026-14628 colpisce 'NousResearch/hermes-agent' (< 2026.5.16).
La funzione extract_media in gateway/platforms/base.py costruisce un percorso del filesystem a partire dal payload del webhook in arrivo senza validarlo, permettendo a un attaccante remoto non autenticato di leggere file al di fuori della directory dei media prevista.
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:Nhermes-agent. Riproduce invece l'esatto pattern della vulnerabilità in un piccolo esempio autonomo, in modo che il difetto e la sua correzione siano facili da studiare e riutilizzare come riferimento durante la revisione di altro codice.| File | Scopo |
|---|---|
vulnerable_example.py | Riproduce la logica difettosa: costruisce un percorso tramite concatenazione ingenua di stringhe, nessuna validazione |
secure_example.py | Versione corretta: verifica che il percorso assoluto risolto rimanga all'interno della directory root prevista |
python3 vulnerable_example.py
L'output mostra l'"attaccante" che legge con successo un file (secret_outside_media_root.txt) che si trova al di fuori della directory prevista media_storage/, utilizzando un input come ../secret_outside_media_root.txt.
python3 secure_example.py
Lo stesso input malevolo viene respinto con un chiaro PathTraversalError.
Due difese complementari sono applicate in secure_example.py:
.. o separatori di percorso vengono rifiutati prima ancora di toccare il filesystem (fallimento rapido, errore chiaro per i chiamanti legittimi).candidate_path = os.path.abspath(os.path.join(MEDIA_ROOT, filename))
if not candidate_path.startswith(MEDIA_ROOT + os.sep):
raise PathTraversalError(...)
Il path traversal è una delle classi di vulnerabilità più comuni e più evitabili nel software che gestisce upload, download o qualsiasi nome file controllato dall'utente — gestori di webhook, processori di media, visualizzatori di log, motori di template e API per il servizio di file sono bersagli frequenti. La correzione è economica (una manciata di righe); il costo di saltarla è la divulgazione arbitraria di file e, nei casi peggiori (quando combinata con accesso in scrittura), l'esecuzione remota di codice.
Questo progetto è solo a scopo educativo. È una riproduzione generica di una classe di vulnerabilità nota, non un exploit funzionante contro alcun software specifico in produzione o non aggiornato. Non utilizzare queste tecniche contro sistemi che non possiedi o per i quali non hai autorizzazione esplicita a testare.