In der Bibliothek , die Handler zum Schutz vor durch das Einfügen von Dateien im „Phar“-Format, (), die es erlaubt, den Schutz gegen die Deserialisierung von Code durch das Einfügen von „..“-Zeichen im Pfad zu umgehen. Beispielsweise kann ein Angreifer eine URL wie „phar:///path/bad.phar/../good.phar“ verwenden, und die Bibliothek wird bei der Überprüfung den Basisnamen „/path/good.phar“ extrahieren, während bei der weiteren Verarbeitung eines solchen Pfades die Datei „/path/bad.phar“ verwendet wird.
Die Bibliothek wurde von den Entwicklern des CMS TYPO3 erstellt, wird aber auch in den Projekten Drupal und Joomla verwendet, was sie ebenfalls anfällig für diese Sicherheitsanfälligkeit macht. Das Problem wurde in den Versionen . Das Projekt Drupal hat das Problem in den Updates 7.67, 8.6.16 und 8.7.1 behoben. In Joomla tritt das Problem seit Version 3.9.3 auf und wurde in Version 3.9.6 behoben. Um das Problem in TYPO3 zu beheben, muss die PharStreamWrapper-Bibliothek aktualisiert werden.
Praktisch erlaubt die Sicherheitsanfälligkeit in PharStreamWrapper einem Drupal Core-Benutzer mit Administratorrechten für das Design (‚Administer theme‘), eine schadhafte phar-Datei hochzuladen und die Ausführung des darin befindlichen PHP-Codes im Gewand eines legitimen phar-Archivs zu erreichen. Es sei daran erinnert, dass der Kernangriff der „Phar-Desserialisierung“ darin besteht, dass bei der Überprüfung hochgeladener Dateien durch die PHP-Funktion file_exists() diese Funktion automatisch die Metadaten aus Phar-Dateien (PHP Archive) deserialisiert, wenn sie Pfade verarbeiten, die mit „phar:///“ beginnen. Der Upload einer phar-Datei ist als Bild möglich, da die Funktion file_exists() den MIME-Typ basierend auf dem Inhalt und nicht auf der Erweiterung bestimmt.
Quelle: opennet.ru
