
OpenEMR Sicherheitsproblem
Path-Traversal- und DoS-Sicherheitslücke im OpenEMR-Projekt
Anfällige Funktion in Datei: /openemr/custom/ajax_download.php
Bedingungen:
Anfällige Versionen: <5.0.2, behoben in Version 5.0.2.
Anfällige Variable in dieser Funktion: fileName, sie kann vom Angreifer kontrolliert werden und es gibt keine Filterung oder Validierung.
Ein Angreifer kann jede Datei (die vom Benutzer www-data lesbar ist) vom Serverspeicher herunterladen.
Wenn die angeforderte Datei für den Benutzer www-data beschreibbar ist und das Verzeichnis /var/www/openemr/sites/default/documents/cqm_qrda/ existiert, wird sie vom Server gelöscht.
Ein nicht vorhandenes Verzeichnis ist kein großes Problem, da der Angreifer es erstellen kann. Die Variable "higher_level_path" in der Upload-Funktion /openemr/controller.php?document&upload ermöglicht es uns, einen Verzeichnisnamen anzugeben, in dem die Datei gespeichert wird. Wenn dieses Verzeichnis nicht existiert (und die Variable "patient_id" numerisch und größer als 0 ist), wird es mit Rechten "700" erstellt und gehört dem Benutzer "www-data".
Dies kann zu DoS führen, da der Angreifer einige Konfigurations-/PHP-Skripte vom Server löschen kann.
Offenlegung von Informationen.
Denial of Service.
P.S. Besonderer Dank an Brady G. Miller vom OpenEMR-Team für die schnelle Reaktion und die Patches