Skip to content
tutorials

Das 20-jährige Geheimnis von PHP ist endlich gelüftet

Ein stiller Fehler in PHP hat über zwei Jahrzehnte hinweg sensible Anmeldedaten preisgegeben, sogar von HTTPS zu HTTP. Der offizielle Patch ist endlich da, doch eine kritische Lücke bedeutet, dass Ihre benutzerdefinierten API-Keys weiterhin gefährdet sein könnten.

Marcus Lee
Das 20-jährige Geheimnis von PHP ist endlich gelüftet

Die zwei Jahrzehnte alte Redirect-Falle

Zwei Jahrzehnte lang hat eine subtile, aber bedeutende Sicherheitslücke in PHP unzählige Anwendungen im Stillen kompromittiert. Seit 2003 folgte die weit verbreitete Funktion file_get_contents, die eigentlich zum Abrufen von URL-Inhalten gedacht ist, automatisch und ohne Rückfragen HTTP-Redirects. Diese scheinbar harmlose Funktion schuf eine schwerwiegende Schwachstelle, durch die versehentlich sensible Benutzerdaten offengelegt wurden.

Wenn ein Skript file_get_contents verwendete, um auf eine API zuzugreifen, und einen Authorization header (mit Bearer-Tokens oder anderen Anmeldedaten) enthielt, leitete PHP diesen Header blind an jede neue, im Redirect angegebene Domain weiter. Das System ging davon aus, dass das neue Ziel vertrauenswürdig sei, und sendete die Authentifizierungsdetails auch dann weiter, wenn der Redirect auf einen völlig anderen Server verwies.

Das gefährlichste Szenario war ein HTTPS-zu-HTTP-Downgrade. Wenn eine anfänglich sichere Anfrage auf einen unverschlüsselten HTTP-Endpunkt umgeleitet wurde, sendete PHP die sensiblen Tokens dennoch. Das bedeutete, dass Anmeldedaten, die ursprünglich durch TLS geschützt waren, völlig unverschlüsselt über das Netzwerk übertragen wurden, wodurch sie für böswillige Akteure leicht abfangbar waren. Dieser stille Weiterleitungsmechanismus brachte unzählige Anwendungen in Gefahr.

Der Patch ist da, aber er ist nicht perfekt

Das Kernproblem war die stille Weiterleitung sensibler Daten durch PHP bei Redirects. Glücklicherweise behebt ein neuer Patch dieses jahrzehntealte Problem endlich und führt eine kritische Sicherheitsprüfung ein. Wenn ein Redirect nun das Schema (wie von HTTP zu HTTPS), den Host oder den Port ändert, entfernt PHP nun intelligent die Authorization- und Cookie-Header. Dieser entscheidende Eingriff verhindert, dass Ihre sensiblen Anmeldedaten versehentlich an einen unbeabsichtigten, potenziell bösartigen neuen Server übertragen werden.

Um von diesem wichtigen Sicherheitsupdate zu profitieren, müssen Entwickler ihre PHP-Installationen zeitnah aktualisieren. Der Fix ist in den neuesten Patch-Releases für die PHP-Versionen 8.2 bis 8.5 verfügbar. Ein Update stellt sicher, dass Ihr Server eine Version ausführt, die aktiv vor diesem spezifischen Datenleck schützt und eine seit Jahren bestehende, signifikante Sicherheitslücke schließt.

Wichtig ist, dass dieser Patch nicht jedes Szenario eines Datenlecks bei Anmeldedaten löst. Der offizielle Fix gilt nur für die Standard-Authorization- und Cookie-Header, die allgemein anerkannt sind. Alle benutzerdefinierten Header, die Sie möglicherweise verwenden, wie etwa ein X-API-Key oder andere maßgeschneiderte Tokens, bleiben anfällig für dieselbe Redirect-Falle. Diese benutzerdefinierten Anmeldedaten werden weiterhin automatisch an den neuen Server weitergeleitet, was eine sorgfältige manuelle Handhabung erfordert.

Warum Guzzle Laravel gerettet hat (und wie Sie sich selbst retten können)

Viele Entwickler, die den HTTP-Client von Laravel oder die zugrunde liegende Guzzle-Bibliothek verwenden, waren bereits vor dieser zwei Jahrzehnte alten Schwachstelle geschützt. Guzzle, ein robuster HTTP-Client, verwaltet Redirects mit einem sicherheitsorientierten Ansatz. Er vermeidet es explizit, sensible Header wie Authorization oder Cookie bei einer Umleitung auf ein anderes Schema, einen anderen Host oder Port blind weiterzuleiten, und bietet damit einen wesentlich sichereren Ansatz als die native PHP-Funktion file_get_contents.

Der neue Patch von PHP (verfügbar in den Versionen 8.2 bis 8.5) adressiert Authorization- und Cookie-Header, deckt jedoch nicht alles ab. Alle benutzerdefinierten Header, die Sie senden, wie etwa ein X-API-Key, werden bei einem Redirect weiterhin weitergeleitet, was potenziell zum Abfluss sensibler Anmeldedaten führen kann. Um diese wirklich abzusichern, müssen Sie die automatischen Redirects von PHP deaktivieren, indem Sie die Kontextoption follow_location für file_get_contents auf false setzen.

Die Implementierung Ihrer eigenen sicheren Redirect-Logik erfordert sorgfältige Schritte. Überprüfen Sie die HTTP-Antwort manuell auf einen 30x-Statuscode. Wenn eine Weiterleitung erfolgt, extrahieren Sie den Location-Header, um die neue URL zu erhalten. Entscheidend ist, dass Sie die Domain dieser neuen URL anhand Ihrer vertrauenswürdigen Liste validieren, bevor Sie eine neue Anfrage initiieren. Diese neue Anfrage sollte explizit alle sensiblen benutzerdefinierten Header ausschließen, um sicherzustellen, dass Ihre Anmeldedaten niemals ein unbeabsichtigtes Ziel erreichen. Weitere Informationen zu verwandten Korrekturen finden Sie unter CVE-2026-91766: PHP had the redirect credential leak curl fixed in 2018.

Gefällt Ihnen der Artikel? Erhalten Sie jeden Morgen einen wie diesen per E-Mail.

eine E-Mail pro Tag · Abmeldung mit zwei Klicks · kein Tracking durch Dritte

PHPs neues Kapitel der Sicherheit

Das zwei Jahrzehnte lange Bestehen dieses Redirect-Bugs in PHP bietet eine deutliche Lektion über die Komplexität der Wartung ausgereifter Sprachen. Kernfunktionen wie file_get_contents, die seit Jahren tief eingebettet sind, können subtile Schwachstellen bergen, die sich der Erkennung entziehen, selbst wenn sich die Sprache weiterentwickelt. Das Entdecken und Beheben von Problemen aus dem Jahr 2003 zeigt die enorme Herausforderung, die Sicherheit über eine riesige, langlebige Codebasis hinweg zu gewährleisten.

Trotz der ständigen Narrative, dass "PHP tot sei", unterstreicht dieser entscheidende Fix für die Versionen 8.2 bis 8.5 die lebendige, kontinuierliche Entwicklung der Sprache. Modern PHP, insbesondere mit robusten Frameworks wie Laravel, liefert konsequent qualitativ hochwertige Anwendungen und beweist seine anhaltende Relevanz. Sein leistungsstarkes Ökosystem, mit Bibliotheken wie Guzzle, die Weiterleitungen standardmäßig sicher handhaben, bietet oft integrierte Schutzmaßnahmen.

Letztendlich hat PHPs Community mit diesem Patch ihr unerschütterliches Engagement für die Modernisierung und Sicherung der Sprache unter Beweis gestellt. Die Behebung einer Legacy-Schwachstelle, die sich über zwei Jahrzehnte erstreckte, stärkt das Vertrauen und zeigt proaktive Sicherheitsverbesserungen. Dieses Engagement stellt sicher, dass PHP eine leistungsstarke, relevante Wahl für die Webentwicklung bleibt, die sich ständig an neue Sicherheitslandschaften anpasst und ein stärkeres Fundament für die Zukunft aufbaut.

Häufig gestellte Fragen

Was war der PHP-Authorization-Header-Leak-Bug?

Über 20 Jahre lang folgten PHP-Funktionen wie file_get_contents automatisch HTTP-Weiterleitungen und leiteten sensible Header wie Authorization an das neue Ziel weiter. Dies konnte selbst dann geschehen, wenn die Weiterleitung an einen anderen Server oder von sicherem HTTPS zu unsicherem HTTP erfolgte.

Welche PHP-Versionen enthalten den Fix?

Der Patch ist in den neuesten Releases für die PHP-Versionen 8.2, 8.3, 8.4 und 8.5 verfügbar. Sie müssen auf die neueste Patch-Version innerhalb dieser Serien aktualisieren, um geschützt zu sein.

Behebt der neue PHP-Patch alle Header-Leaks?

Nein. Der offizielle Fix entfernt nur die Standard-Header Authorization und Cookie bei domänenübergreifenden Weiterleitungen. Benutzerdefinierte Header, wie X-Api-Key, werden nicht entfernt und werden weiterhin geleakt.

War Laravel von diesem PHP-Bug betroffen?

Nein. Der Standard-HTTP-Client von Laravel basiert auf Guzzle, das seine eigene, sicherere Logik zur Handhabung von Weiterleitungen implementiert. Guzzle leitet keine sensiblen Header an andere Hosts weiter, daher waren Laravel-Anwendungen nicht anfällig für dieses spezifische Problem.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$500 · AI tools & software only

Für Builder

Diese Seite arbeitet gerade für das Tool von jemand anderem.

KI-Agenten lesen sie. Käufer landen darauf. Sie antwortet in acht Sprachen und über MCP. Dein Tool kann so eine haben — in 24 Stunden live.