5. August 2020
Diese Schwachstelle ist eine Variante einer bereits früher gemeldeten Schwachstelle und letztlich das Ergebnis der Zusammensetzung von cachefähigen Origin-Antworten auf der Basis von nutzerdefinierten Daten. Das Problem tritt auf, wenn ein Angreifer eine HTTPS-Anfrage stellt und im Host-Header eine Portnummer angibt, die eigentlich für keine Services verwendet wird. Es ist möglich, eine Ressource so zu cachen, dass zukünftige Requests nicht mehr korrekt bearbeitet werden können.
Diese Schwachstelle betrifft Kunden, deren Service die beiden folgenden Kriterien erfüllt:
Der Origin-Server verwendet die vollständigen X-Forwarded-Host-Header-Informationen (einschließlich Portnummer), um eine Umleitungsantwort an den Client zu erstellen; und
Ihr Fastly Service ist so konfiguriert, dass die Umleitungsantwort vom Origin-Server zwischengespeichert wird.
Fastly wurde am 21. Mai 2020 um 13:30 Uhr UTC über das Problem informiert. Fastly hat daraufhin sofort eine Untersuchung eingeleitet und identifiziert, welche Origin-Server mit einer Testportnummer in der Redirect-Antwort antworteten, um nach der Schwachstelle und möglichen Lösungen zu suchen. Nach der Untersuchung benachrichtigte Fastly potenziell betroffene Kunden erstmals am 15. Juli 2020 um 04:30 Uhr UTC.
Wenn die Schwachstelle ausgenutzt worden wäre, hätte der betroffene Service seinen Kunden keine zielgerichteten Inhalte zur Verfügung stellen können.
Ein Angreifer erstellt beispielsweise eine Anfrage an einen Service, der von Fastly betrieben wird, wobei der Host-Header einen geschlossenen Port enthält:
Angreifer-Anfrage:
GET / HTTP/1.1
Host: www.example.com:10000
Fastly Anfrage an den Origin-Server:
GET / HTTP/1.1
Host: www.example.com
X-Forwarded-Host: www.example.com:10000
Origin + Fastly Umleitungs-Antwort:
HTTP/1.1 302 Found
Location: https://www.example.com:10000/en
X-Cache: MISS, MISS
Wenn Fastly die Antwort dann cacht, werden nachfolgende gültige Anfragen an die zwischengespeicherte Ressource an den geschlossenen Port umgeleitet und verfallen:
Opfer-Anfrage + Antwort:
GET / HTTP/1.1
Host: www.example.com
HTTP/1.1 302 Found
Location: https://www.example.com:10000/en
X-Cache: MISS, HIT
Seit dem 4. August hat Fastly in Varnish einen Fix implementiert, der einen Status-Code 421 „Fehlgeleitete Anfrage“ zurückschickt, wenn der Host-Header der Anfrage eine Portnummer angibt, auf der die Anfrage nicht empfangen wurde.
Weitere Informationen
[1] Zusammenfassung: https://www.blackhat.com/us-20/briefings/schedule/index.html#web-cache-entanglement-novel-pathways-to-poisoning-19712
[2] Whitepaper: https://portswigger.net/research/web-cache-entanglement-novel-pathways-to-poisoning
21. Mai 2020 13:30 Uhr UTC – Meldung vom externen Sicherheitsforscher erhalten. Das Fastly Sicherheitsteam leitet bei Erhalt dieser Meldung eine Untersuchung ein.
5. Juni 2020 – Fastly hat mit der Sondierung begonnen, um eine Lösung zu finden, die die Origin-Server der Kunden vor Anfragen schützt, die dieses Verhalten aufweisen.
18. Juni 2020 – Abschluss der internen Untersuchung und Beginn der Bewertungen für Abhilfemaßnahmen und Empfehlungen für die identifizierten potenziell betroffenen Kunden.
15. Juli 2020, 04:30 Uhr UTC – Kunden, die potenziell von diesem Problem betroffen sein können, wurden kontaktiert.
3. August 2020 08:00 Uhr – 4. August 2020 23:00 Uhr UTC – Bereitstellung der Schwachstellenbehebung im Fastly Netzwerk, um alle Origin-Server der Kunden zu schützen
Sollten Sie weitere Fragen haben, wenden Sie sich bitte an Fastly Customer Engineering unter support@fastly.com oder an das Fastly Sicherheitsteam unter security@fastly.com.