In de webinterface J-Web, die wordt gebruikt in netwerkapparatuur van het bedrijf Juniper met het besturingssysteem JunOS, zijn verschillende kwetsbaarheden ontdekt, waarvan de meest ernstige (CVE-2022-22241) het mogelijk maakt om op afstand zonder authenticatie eigen code in het systeem uit te voeren via het verzenden van een speciaal geformuleerde HTTP-aanroep. Gebruikers van Juniper-apparatuur wordt aangeraden de firmware bij te werken, en als dit niet mogelijk is, te zorgen dat de toegang tot de webinterface is geblokkeerd vanuit externe netwerken en beperkt tot alleen vertrouwde hosts.
De kern van de kwetsbaarheid is dat het door de gebruiker verzonden pad van bestanden wordt verwerkt in het script /jsdm/ajax/logging_browse.php zonder een filter voor het type inhoud tijdens de fase vóór de authenticatiecontrole. Een aanvaller kan een kwaadaardige phar-bestand doorgeven als een afbeelding en uitvoering van de PHP-code in het geplaatste phar-archief bereiken door gebruik te maken van de aanvalsmethode 'Phar deserialization' (bijvoorbeeld door in de aanvraag 'filepath=phar:/pad/pharfile.jpg' op te geven).
Het probleem is dat bij het controleren van het geüploade bestand met de PHP-functie is_dir(), deze functie automatisch de deserialisatie van metadata uit het Phar-archief (PHP Archive) uitvoert bij het verwerken van paden die beginnen met 'phar://'. Ditzelfde effect wordt waargenomen bij het verwerken van door de gebruiker verzonden bestandspaden in functies als file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime() en filesize().
De aanval wordt bemoeilijkt doordat de aanvaller, naast het initiëren van de uitvoering van het phar-archief, ook een manier moet vinden om het naar het apparaat te uploaden (door toegang te krijgen tot /jsdm/ajax/logging_browse.php kan alleen het pad worden opgegeven voor de uitvoering van een al bestaand bestand). Tot de mogelijke scenario's voor het uploaden van bestanden naar het apparaat behoren het uploaden van een phar-bestand als een afbeelding via een afbeeldingsoverdrachtsdienst en het vervangen van een bestand in de cache van webinhoud.
Andere kwetsbaarheden:
- CVE-2022-22242 - de invoering van niet-gefilterde externe parameters in de uitvoer van het script error.php, wat cross-site scripting mogelijk maakt en willekeurige JavaScript-code kan uitvoeren in de browser van de gebruiker wanneer deze op een link klikt (bijvoorbeeld 'https://JUNOS_IP/error.php?SERVER_NAME='). Deze kwetsbaarheid kan worden gebruikt om sessieparameters van de beheerder te onderscheppen als de aanvaller erin slaagt om de administrator een speciaal opgemaakte link te laten openen.
- CVE-2022-22243, CVE-2022-22244 — Invoegen van XPATH-expressies via scripts jsdm/ajax/wizards/setup/setup.php en /modules/monitor/interfaces/interface.php, stelt een niet-bevoorrechte geauthenticeerde gebruiker in staat om sessies van de admin te manipuleren.
- CVE-2022-22245 — Het ontbreken van de juiste schoonmaak van de sequentie «..» in de paden, verwerkt in het script Upload.php, stelt een geauthenticeerde gebruiker in staat om zijn PHP-bestand te uploaden naar een map die de uitvoering van PHP-scripts toestaat (bijvoorbeeld door het pad «fileName=\..\..\..\..\www\dir\new\shell.php» door te geven).
- CVE-2022-22246 — De mogelijkheid om een willekeurig lokaal PHP-bestand uit te voeren via manipulatie door een geauthenticeerde gebruiker met het script jrest.php, waarbij externe parameters worden gebruikt om de bestandsnaam te vormen die wordt geladen door de functie «require_once()» (bijvoorbeeld «/jrest.php?payload=alol/lol/any\..\..\..\..\any\file»).
Bron: opennet.ru
