PHP 8: HTTP-Wrapper Schwachstellen erlauben HTTP Request Smuggling

Table of Contents

PHP ist aktuell von zwei moderaten Schwachstellen betroffen, die die Verarbeitung von HTTP-Headern und Redirect-URIs in den internen Stream-Wrappern beeinträchtigen. Beide Probleme wurden in Versionen vor 8.1.32, 8.2.28, 8.3.18 und 8.4.5 festgestellt und in den folgenden Versionen behoben.

CVE-2025-1734: UngĂĽltige Header-Namen werden nicht abgefangen

Betroffene Versionen:

  • PHP < 8.1.32
  • PHP < 8.2.28
  • PHP < 8.3.18
  • PHP < 8.4.5

Bei der Nutzung des HTTP-Stream-Wrappers werden Header, die keinen Doppelpunkt enthalten – oder solche, bei denen ein Leerzeichen vor dem Doppelpunkt steht – fälschlicherweise als gültig interpretiert und in das Array $http_response_header aufgenommen.
Beispiel:

printf "HTTP/1.0 200 Ok\r\nContent-Type: text/html\r\nWrong-Header\r\nGood-Header: test\r\n\r\nbody\r\n" | nc -l 0.0.0.0 8000

liefert ein Array mit:

  • “HTTP/1.0 200 Ok”
  • “Content-Type: text/html”
  • “Wrong-Header”
  • “Good-Header: test”

Die fehlerhafte Verarbeitung dieser Header kann dazu führen, dass Anwendungen sie entweder als valide Header oder als Fortsetzung des vorangegangenen Headers interpretieren. Dies kann in bestimmten Szenarien zu Request Smuggling führen, da unsauber geparste Header fälschlicherweise als Teil der Anfrage interpretiert werden.

Workaround:
Entwickler können das Array $http_response_header speziell validieren und ungültige Header manuell herausfiltern. Eine Benachrichtigung über diese Header erfolgt jedoch nicht automatisch.

CVE-2025-1861: URI-Trunkierung bei Redirect-Location auf 1024 Bytes

Betroffene Versionen:

  • PHP < 8.1.32
  • PHP < 8.2.28
  • PHP < 8.3.18
  • PHP < 8.4.5

Der HTTP-Wrapper in PHP begrenzt derzeit die Länge des Werts für die Redirect-Location-Header auf 1024 Bytes, da der interne Puffer entsprechend limitiert ist. Laut RFC 9110 wird jedoch ein Limit von 8000 Bytes empfohlen, während Browser typischerweise bis zu 2048 Bytes unterstützen.

Diese zu niedrige Begrenzung kann dazu führen, dass wichtige Informationen in der Umleitungs-URL – etwa aus der Query-String – abgeschnitten werden. In manchen Fällen kann dies zu einer falschen Umleitung oder sogar zu einem Denial-of-Service führen, wenn der gekürzte URI einen Fehler provoziert.

Related Posts

Apache Tomcat – CVE-2025-24813 ermöglicht potenzielle RCE

Am 10. März 2025 wurde eine Sicherheitslücke (CVE-2025-24813) in Apache Tomcat bekannt, die durch die ursprüngliche Implementierung von Partial PUT entsteht. Dabei wird ein temporärer Dateiname auf Basis von Benutzerangaben erstellt, wobei Pfadtrenner durch einen Punkt ersetzt werden. Unter bestimmten Bedingungen – etwa wenn das Schreiben für das Default Servlet aktiviert ist (standardmäßig deaktiviert), Partial PUT unterstützt wird (standardmäßig aktiviert) und sensible Upload-Pfade in Unterverzeichnissen öffentlicher Bereiche liegen – kann ein Angreifer sicherheitsrelevante Dateien einsehen, manipulieren oder sogar Remote Code Execution (RCE) auslösen.

Read More

SAP patcht zahlreiche Schwachstellen gegen XSS und RCE

SAP hat seine neuesten Sicherheitsupdates vorgestellt, die 21 neue Schwachstellen beheben und drei bereits veröffentlichte Security Notes aktualisieren. Unter den prioritären Fixes befindet sich eine schwerwiegende Cross-Site Scripting (XSS)-Schwachstelle in der Swagger UI von SAP Commerce (CVE-2025-27434, CVSS 8.8) sowie ein fehlender Berechtigungscheck im ABAP Class Builder von SAP NetWeaver (CVE-2025-26661, CVSS 8.8).

Read More

Jenkins SicherheitslĂĽcken: Update dringend empfohlen

Am 5. März 2025 wurden in Jenkins mehrere Sicherheitslücken in der Kernsoftware bekannt. Betroffen sind unter anderem Schwachstellen, bei denen verschlüsselte Geheimnisse in Agent- und View-Konfigurationen für Nutzer mit entsprechenden Leserechten einsehbar sind (SECURITY-3495, SECURITY-3496). Zudem gibt es eine CSRF-Schwachstelle (SECURITY-3498), die es Angreifern ermöglicht, Seiteneinstellungen über manipulierte HTTP-Anfragen zu ändern, sowie eine Open-Redirect-Lücke (SECURITY-3501), die für Phishing-Angriffe missbraucht werden kann.

Read More