Im Web-Interface J-Web, das in NetzwerkgerĂ€ten von Juniper mit dem Betriebssystem JunOS verwendet wird, wurden mehrere Schwachstellen entdeckt. Die gefĂ€hrlichste davon (CVE-2022-22241) ermöglicht einem Angreifer, ohne Authentifizierung eigenen Code im System auszufĂŒhren, indem er eine speziell gestaltete HTTP-Anfrage sendet. Benutzer von Juniper-GerĂ€ten wird geraten, die Firmware zu aktualisieren. Sollte dies nicht möglich sein, sollte der Zugriff auf das Web-Interface aus externen Netzwerken blockiert und nur vertrauenswĂŒrdigen Hosts gestattet werden.
Die Schwachstelle besteht darin, dass der ĂŒbertragene Dateipfad des Benutzers im Skript /jsdm/ajax/logging_browse.php ohne Filterung des Content-Type-PrĂ€fixes vor der AuthentifizierungsprĂŒfung verarbeitet wird. Ein Angreifer kann einen schĂ€dlichen Phar-Datei als Bild tarnen und die AusfĂŒhrung des in der Phar-Archiv gespeicherten PHP-Codes erreichen, indem er die Methode "Phar-Deserialisierung" anwendet (zum Beispiel, indem er in der Anfrage "filepath=phar:/pfad/pharfile.jpg" angibt).
Das Problem besteht darin, dass bei der ĂberprĂŒfung einer hochgeladenen Datei mit der PHP-Funktion is_dir() die Funktion automatisch die Metadaten aus dem Phar-Archiv (PHP Archive) deserialisiert, wenn sie mit Pfaden arbeitet, die mit âphar://â beginnen. Ein Ă€hnlicher Effekt tritt bei der Verarbeitung von vom Benutzer ĂŒbergebenen Dateipfaden in den Funktionen file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime() und filesize() auf.
Die Attacke wird dadurch erschwert, dass der Angreifer neben der Initiierung der AusfĂŒhrung des Phar-Archivs auch einen Weg finden muss, das Archiv auf das GerĂ€t zu laden (ĂŒber den Zugriff auf /jsdm/ajax/logging_browse.php kann lediglich der Pfad zur AusfĂŒhrung einer bereits existierenden Datei angegeben werden). Zu den möglichen Szenarien, wie Dateien auf das GerĂ€t gelangen können, gehört das Hochladen einer Phar-Datei unter dem Deckmantel eines Bildes ĂŒber einen BildĂŒbertragungsdienst sowie das EinfĂŒgen der Datei in den Cache von Webinhalten.
Weitere Schwachstellen:
- CVE-2022-22242 â EinfĂŒgen von ungefilterten externen Parametern in die Ausgabe des Skripts error.php, was Cross-Site-Scripting ermöglicht und es erlaubt, beliebigen JavaScript-Code im Browser des Nutzers auszufĂŒhren, wenn der Benutzer auf einen Link klickt (z.B. "https://JUNOS_IP/error.php?SERVER_NAME="). Die Schwachstelle kann dazu verwendet werden, die Sitzung des Administrators abzufangen, wenn es dem Angreifer gelingt, einen speziell gestalteten Link vom Administrator öffnen zu lassen.
- CVE-2022-22243, CVE-2022-22244 â EinfĂŒgen von XPATH-AusdrĂŒcken ĂŒber Skripte jsdm/ajax/wizards/setup/setup.php und /modules/monitor/interfaces/interface.php, was es einem nicht privilegierten authentifizierten Benutzer ermöglicht, die Sitzungen des Administrators zu manipulieren.
- CVE-2022-22245 â Fehlende ausreichende Bereinigung der Zeichenfolge ".." in den Pfaden, die im Skript Upload.php verarbeitet werden, ermöglicht es einem authentifizierten Benutzer, seine PHP-Datei in ein Verzeichnis hochzuladen, das die AusfĂŒhrung von PHP-Skripten zulĂ€sst (zum Beispiel durch Ăbermittlung des Pfades "fileName=\..\..\..\..\www\dir\new\shell.php").
- CVE-2022-22246 â Möglichkeit zur AusfĂŒhrung beliebiger lokaler PHP-Dateien durch einen authentifizierten Benutzer ĂŒber Manipulationen mit dem Skript jrest.php, bei dem externe Parameter zur Bildung des Dateinamens verwendet werden, der von der Funktion ârequire_once()â geladen wird (z. B. â/jrest.php?payload=alol/lol/any\..\..\..\..\any\fileâ)
Quelle: opennet.ru
