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-Pending-Flask-Uploads-Path-Traversal-PoC — Dimostrazione di Path Traversal CWE-22 in Flask-Uploads 0.2.1. Solo per scopi educativi e di ricerca sulla sicurezza. Testato su Python 3.11. | Kitploit
Strumenti/GitHubGitHub/nicetop1027/cve-2026-pending-flask-uploads-path-traversal-poc
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e Formazione
GitHubnicetop1027/cve-2026-pending-flask-uploads-path-traversal-poc

CVE-2026-Pending-Flask-Uploads-Path-Traversal-PoC

Dimostrazione di Path Traversal CWE-22 in Flask-Uploads 0.2.1. Solo per scopi educativi e di ricerca sulla sicurezza. Testato su Python 3.11.

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
Vedi Repository
7 mesi faNon ancora revisionato

CVE-2026-XXXXX (In attesa): Path Traversal in Flask-Uploads

Informazioni sulla vulnerabilità

  • Prodotto: Flask-Uploads
  • Versione: 0.2.1 (e potenzialmente versioni precedenti)
  • Tipo di vulnerabilità: Path Traversal (Directory Traversal)
  • CWE-ID: CWE-22
  • Gravità: ALTA (CVSS 7.5)
  • Impatto: Scrittura arbitraria di file, Esecuzione di codice remoto (RCE)

Descrizione

Esiste una vulnerabilità critica di path traversal in Flask-Uploads versione 0.2.1. La libreria non sanitizza correttamente i nomi dei file caricati prima di salvarli sul filesystem.

In particolare, il metodo save() in flask_uploads.py concatena direttamente il percorso di destinazione dell'upload con il nome file fornito dall'utente usando os.path.join(). Questo consente a un attaccante di includere sequenze di directory traversal (es. ../../) nel nome del file, permettendogli di scrivere file in posizioni arbitrarie del filesystem del server.

Analisi della causa principale

File: flask_uploads.py (Riga 132 in v0.2.1)

root@kitploit:~
def save(self, storage, filename=None):
    if filename is None:
        filename = storage.filename
    # VULNERABLE CODE: No sanitization of 'filename'
    target = os.path.join(self.destination, filename)
    storage.save(target)
    return filename

L'applicazione fa affidamento sullo sviluppatore per sanitizzare il nome del file, ma la documentazione della libreria implica che gestisca in modo sicuro i caricamenti dei file. Di default, se uno sviluppatore passa un nome file grezzo da una richiesta, si arriva a una vulnerabilità.

Impatto

  1. Sovrascrittura arbitraria di file: gli attaccanti possono sovrascrivere file di sistema critici (es. ssh_host_key, file di configurazione).
  2. Esecuzione di codice remoto (RCE): caricando uno script malevolo (es. .php, .py) in una directory eseguita dal server web (come cgi-bin o una cartella statica nota), un attaccante può eseguire comandi arbitrari sul server.

Prova di concetto (PoC)

Un attaccante può sfruttare questa vulnerabilità inviando una richiesta POST con un nome file appositamente costruito:

root@kitploit:~
POST /upload HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="../../../../../tmp/pwned.txt"
Content-Type: text/plain

HACKED
------WebKitFormBoundary--

Se il server usa Flask-Uploads per salvare questo file, verrà scritto in /tmp/pwned.txt invece che nella directory di upload prevista.

Mitigazione / Correzione

La libreria dovrebbe verificare che il percorso unito sia all'interno della directory prevista usando os.path.abspath e startswith, oppure usare sempre una funzione di sanitizzazione come werkzeug.utils.secure_filename.

Correzione consigliata:

root@kitploit:~
from werkzeug.utils import secure_filename

# ...
filename = secure_filename(filename) 
target = os.path.join(self.destination, filename)
Scarica lo strumento