„`html
Zusammenfassung
CVE-2026-7017 ist eine High-Severity-Schwachstelle in HTTP::Tiny für Perl (Versionen vor 0.095), die zu einer Preisgabe von Authentifizierungsdaten führt. Die Komponente leitet HTTP-Redirects (3xx) ohne Origin-Überprüfung weiter und sendet dabei sensitive Header wie Authorization, Cookie und Proxy-Authorization an beliebige Ziele. Dies ermöglicht Cross-Origin-Credential-Leaks auch über HTTPS-zu-HTTP-Downgrades.
Betroffene Systeme
Alle Systeme mit HTTP::Tiny-Versionen vor 0.095 sind betroffen. Dies umfasst Perl-basierte Anwendungen, die HTTP::Tiny für HTTP-Requests nutzen, insbesondere:
- Perl 5 Distributionen mit veralteten HTTP::Tiny-Modulen
- CPAN-abhängige Anwendungen
- Server und CLI-Tools, die HTTP::Tiny als HTTP-Client verwenden
Technische Details
Die Schwachstelle liegt in der Redirect-Handhabung. Wenn ein Server eine 3xx-Response mit Location-Header zurückgibt, folgt die `_maybe_redirect`-Funktion diesem automatisch. Die `_prepare_headers_and_cb`-Funktion führt dann die Original-Header ohne Origin-Validierung erneut zusammen.
Angreifer können dies ausnutzen durch:
- Hosting einer bösartigen Website, die 3xx-Redirects auf externe Ziele setzt
- Umleitung auf attacker-kontrollierte Server
- Abfangen von Authorization-Headern, Cookies und Proxy-Credentials
Kritisch ist auch die HTTPS-zu-HTTP-Downgrade-Möglichkeit, die Credentials im Plaintext exponiert. Die Dokumentation erwähnte nur URL-userinfo Basic-Auth, nicht explizit übergebene Header.
Empfohlene Massnahmen
- Sofortige Aktualisierung: HTTP::Tiny auf Version 0.095 oder höher upgraden
- Dependency-Audit: Alle Perl-Module auf HTTP::Tiny-Abhängigkeiten prüfen
- Workaround: Bei verzögertem Update: Manuelle Redirect-Handling implementieren mit Origin-Validierung
- Monitoring: Logs auf unerwartete Cross-Origin-Requests zu externen Hosts prüfen
Bewertung
CVSS-Score: 7.1 (High)
Die Schwachstelle ermöglicht Credential-Theft mit Netzwerk-Zugang. Während kein RCE möglich ist, gefährdet sie sensitive Authentifizierungsdaten massiv. Sofortige Patches sind erforderlich, besonders für Systeme in untrusted Umgebungen oder mit externen HTTP-Requests.
„`