• IT-Karriere:
  • Services:

FPM-Sicherheitslücke: Daten exfiltrieren mit Facebooks HHVM

Server für den sogenannten FastCGI Process Manager (FPM) können, wenn sie übers Internet erreichbar sind, unbefugten Zugriff auf Dateien eines Systems geben. Das betrifft vor allem HHVM von Facebook, bei PHP sind die Risiken geringer.

Eine Exklusivmeldung von veröffentlicht am
FPM-Server können Dateien unberechtigt preisgeben - besonders problematisch ist das bei Facebooks HHVM.
FPM-Server können Dateien unberechtigt preisgeben - besonders problematisch ist das bei Facebooks HHVM. (Bild: sailko/Wikimedia Commons/CC-BY-SA 3.0)

Die Nutzung von Facebooks HHVM kann in der Standardeinstellung dazu führen, dass Angreifer Dateien eines Servers exfiltrieren können. Schuld daran ist der sogenannte FastCGI Process Manager (FPM), eine ursprünglich von PHP entwickelte Methode, um CGI-Skripte schneller ausführen zu können. PHP selbst ist zwar theoretisch ebenfalls betroffen, allerdings sorgen einige Schutzmechanismen dafür, dass das Risiko dort deutlich geringer ist.

Stellenmarkt
  1. Keller & Kalmbach GmbH, Unterschleißheim bei München
  2. IPS Pressevertrieb GmbH, Meckenheim

HHVM oder Hiphop Virtual Machine war ursprünglich eine von Facebook entwickelte Implementierung der Programmiersprache PHP. Allerdings hat sich HHVM inzwischen in eine andere Richtung entwickelt, Facebook hat Teile der Syntax geändert und aktuelle Versionen implementieren inzwischen eine eigene Programmiersprache namens HACK. Die aktuelle Version 4 von HHVM unterstützt PHP nicht mehr.

FPM funktioniert so, dass auf einem Server permanent ein PHP- oder HHVM-Prozess läuft. Ein Webserver kann Anfragen nach entsprechenden Skripten an den FPM-Daemon weiterleiten, wo diese verarbeitet werden. FPM kann dabei entweder über einen lokalen Socket oder einen Netzwerkport angesprochen werden. Wenn FPM über einen Netzwerkport und von außen erreichbar ist, entsteht ein Sicherheitsrisiko, das im schlimmsten Fall dazu führt, dass man beliebige Dateien exfiltrieren kann.

Fast alle Dateien sind gültige PHP-Skripte

Relevant hierfür ist die Syntax von PHP-Skripten. PHP-Dateien sind zunächst einmal HTML-Dateien, deren Hauptteil einfach unverändert ausgegeben wird. Ein PHP-Skript-Teil wird durch ein "<?php" eingeleitet und ein "?>" beendet. Alles, was nicht in diesen PHP-Tags eingeschlossen ist, bleibt unverändert. Konkret heißt das, dass auch jede Datei, die keine derartigen Tags enthält, ein valides PHP-Skript ist, welches nichts weiter tut, als seinen Inhalt auszugeben.

Im Fall eines von außen erreichbaren FPM-Daemons heißt das, dass man dort eine beliebige Datei - etwa /etc/passwd/ - anfragen kann und der FPM-Daemon dann den Inhalt der Datei ausgibt. Dafür muss der Nutzer, unter dem der FPM-Daemon läuft, auf die entsprechende Datei Zugriff haben, es funktioniert also üblicherweise nicht mit Dateien, die nur der root-Nutzer lesen kann. Bei HHVM in der älteren, noch PHP-kompatiblen Version 3 funktioniert das Datenexfiltrieren direkt in der Standardeinstellung.

Testen kann man einen entsprechenden Angriff relativ trivial mit dem Kommandozeilentool cgi-fcgi, welches Teil der FastCGI-Bilbiothek ist:

  1. SCRIPT_NAME=/etc/passwd SCRIPT_FILENAME=/etc/passwd REQUEST_METHOD=GET cgi-fcgi -bind -connect [host]:9000

In PHP selbst nur geringes Risiko

In PHP selbst ist das Risiko deutlich geringer. Der FPM-Daemon von PHP lauscht in der Standardkonfiguration nicht auf einem nach außen offenen Netzwerkport. Zudem hat FPM in PHP eine Option namens "security.limit_extensions", die festlegt, dass FPM nur Dateien mit bestimmten Dateiendungen ausführen soll. Standardmäßig sind dort nur die PHP-eigenen Endungen .php und .phar erlaubt. Solange diese Einstellung nicht geändert wird, ist also eine Datenexfiltration von beliebigen Dateien nicht möglich.

Es ist allerdings trotz dieser Schutzmaßnahme nicht empfehlenswert, den FPM-Daemon von PHP im Netz lauschen zu lassen, denn nach wie vor kann ein Angreifer damit beliebige PHP-Skripte auf dem System ausführen, wenn er deren Pfade kennt. Darunter können auch Skripte sein, die nicht von außen erreichbar sein sollten.

Ein spezieller Fall ist die neuere Version 4 von HHVM. Dort wird die klassische PHP-Syntax nicht mehr unterstützt. In unseren Tests war es trotzdem so, dass Dateien teilweise exfiltriert werden konnten, aber nicht alle.

Facebook hat inzwischen auf das Problem reagiert, neuere Versionen von HHVM sind standardmäßig nicht mehr über das Netzwerk erreichbar und lauschen nur noch lokal auf dem FPM-Port.

Offenlegung: Der Autor dieses Artikels hat für den Bericht dieses Sicherheitsproblems von Facebook einen Bug Bounty erhalten.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Hardware-Angebote
  1. (u. a. Gigabyte GeForce RTX 3090 VISION OC 24G für 1.849€)
  2. (u. a. Ryzen 9 5950X für 979,90€)

Kleba 10. Jul 2019

Es ist immer wieder interessant zu sehen, welche möglichen Angriffsvektoren in moderner...


Folgen Sie uns
       


Radeon RX 6800 (XT) im Test mit Benchmarks

Lange hatte AMD bei Highend-Grafikkarten nichts zu melden, mit den Radeon RX 6800 (XT) kehrt die Gaming-Konkurrenz zurück.

Radeon RX 6800 (XT) im Test mit Benchmarks Video aufrufen
iPhone 12 Pro Max im Test: Das Display macht den Hauptunterschied
iPhone 12 Pro Max im Test
Das Display macht den Hauptunterschied

Das iPhone 12 Pro Max ist größer als das 12 Pro und hat eine etwas bessere Kamera - grundsätzlich liegen die beiden Topmodelle von Apple aber nah beieinander, wie unser Test zeigt. Käufer des iPhone 12 Pro müssen keine Angst haben, etwas zu verpassen.
Ein Test von Tobias Költzsch

  1. Touchscreen und Hörgeräte iOS 14.2.1 beseitigt iPhone-12-Fehler
  2. iPhone Magsafe ist nicht gleich Magsafe
  3. Displayprobleme Grünstich beim iPhone 12 aufgetaucht

AVM Fritzdect Smarthome im Test: Nicht smart kann auch smarter sein
AVM Fritzdect Smarthome im Test
Nicht smart kann auch smarter sein

AVMs Fritz Smarthome nutzt den Dect-Standard, um Lampen und Schalter miteinander zu verbinden. Das geht auch offline im eigenen LAN.
Ein Test von Oliver Nickel

  1. Konkurrenz zu Philips Hue Signify bringt WLAN-Lampen von Wiz auf den Markt
  2. Smarte Kühlschränke Hersteller verschweigen Kundschaft Support-Dauer
  3. Magenta Smart Home Telekom bietet mehr für das kostenlose Angebot

Pixel 4a 5G im Test: Das alternative Pixel 5 XL
Pixel 4a 5G im Test
Das alternative Pixel 5 XL

2020 gibt es kein Pixel 5 XL - oder etwa doch? Das Pixel 4a 5G ist größer als das Pixel 5, die grundlegende Hardware ist ähnlich bis gleich. Das Smartphone bietet trotz Abstrichen eine Menge.
Ein Test von Tobias Költzsch

  1. Schnelle Webseiten Google will AMP-Seiten nicht mehr bevorzugen
  2. Digitale-Dienste-Gesetz Will die EU-Kommission doch keine Konzerne zerschlagen?
  3. Google Fotos Kein unbegrenzter Fotospeicher für neue Pixel

    •  /