CVE-2025-65346 – Path Traversal autenticato dalla funzione UnZip che porta alla scrittura arbitraria di file in laravel-file-manager v3.3.1
🧭 Panoramica
Una vulnerabilità di Path Traversal nella funzionalità di unzip/estrazione dell'applicazione interessata consente a un attaccante di scrivere file in posizioni arbitrarie del filesystem durante l'estrazione dell'archivio. Poiché la routine di estrazione non riesce a sanificare i percorsi di destinazione all'interno delle voci ZIP, un attaccante può creare archivi ZIP contenenti sequenze di traversamento (es. ../../routes) o percorsi assoluti. Quando vengono elaborati dall'applicazione, questi file vengono estratti direttamente nelle posizioni specificate con i permessi del processo in esecuzione.
Questa falla può essere abusata per sovrascrivere file esistenti, inserire payload eseguibili o modificare il comportamento dell'applicazione, portando potenzialmente all'esecuzione remota di codice.
🧱 Componente interessato
- Progetto:
laravel-file-manager
- Componente: zip/archiving Functionf
- Versione interessata: v3.3.1 e precedenti
🎯 Vettori di attacco
- L'attaccante carica o fornisce un archivio ZIP all'endpoint di unzip dell'applicazione (l'autenticazione può essere richiesta o meno a seconda della configurazione).
- Manipola il payload della richiesta UNZIP per includere sequenze di directory traversal come ../../routes.
- La logica di estrazione del backend risolve questi percorsi senza validazione e scrive i file direttamente in quelle posizioni.
- I file esistenti possono essere sovrascritti silenziosamente se i nomi dei file collidono.
- L'attaccante ottiene la capacità di sostituire file dell'applicazione, scrivere web shell o modificare file di configurazione critici.
💥 Impatto
- Scrittura arbitraria di file: i file possono essere scritti in qualsiasi posizione scrivibile dall'utente dell'applicazione (es. www-data).
- Sovrascrittura di file: gli attaccanti possono sovrascrivere file legittimi dell'applicazione, inclusi route, controller o configurazione.
- Esecuzione remota di codice: scrivendo payload eseguibili dal web (PHP, JSP o altri) nella webroot, l'attaccante può ottenere la piena esecuzione di codice.
- Compromissione dell'applicazione: la modifica di punti di ingresso, come index.php, può alterare la logica del sito o introdurre backdoor persistenti.
- Privilege Escalation (indiretta): sovrascrivere file di configurazione/env può esporre segreti che consentono un ulteriore movimento laterale.
Gravità: Critica
Punteggio base: 9.1
Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
🛡️ Mitigazione consigliata
- Implementare la validazione canonica dei percorsi: normalizzare i percorsi dei file richiesti e imporre una restrizione rigorosa alla root di storage designata del progetto.
- Rifiutare qualsiasi percorso contenente sequenze di traversamento (../, %2e%2e/, traversamento nidificato).
- Applicare la logica di allowlist lato server
- Aggiornare a una versione patchata non appena il fornitore rilascia una correzione che affronti questa debolezza di path traversal.
🙏 Crediti
Scoperta e segnalata da: Theethat Thamwasin