EN
en direct
Réseau Critique CVSS 9.1

Le routeur mesh Cudy WR3000 se fait rooter via un secret JWT codé en dur

Deux failles publiées le 19 août 2026, CVE-2026-71960 et CVE-2026-71961, permettent à un attaquant sans compte de forger un jeton MQTT puis d’exécuter des commandes root sur le routeur mesh Cudy WR3000. Mettez à jour vers le firmware 2.5.24 et sortez l’interface mesh de votre exposition Internet.

Un routeur Wi-Fi ouvert au tournevis, un condensateur ambre sur la carte exposée, symbolisant un secret codé en dur dans le firmware.

19 août 2026. Deux failles. Une chaîne. Le routeur mesh Cudy WR3000 2.0 cumule deux vulnérabilités publiées le même jour : CVE-2026-71960, un secret JWT codé en dur noté CVSS 9.1, et CVE-2026-71961, une injection de commandes notée CVSS 8.8. Mises bout à bout, elles permettent à un attaquant sans compte de forger un jeton d’authentification, puis d’exécuter des commandes root sur l’appareil. Le correctif est le firmware 2.5.24.

Le maillon faible : un secret JWT dans le firmware

Le Cudy WR3000 est un routeur Wi-Fi 6 mesh : plusieurs unités se coordonnent via un bus de messages MQTT, servi par le broker Mosquitto embarqué. Pour authentifier les nœuds sur ce bus, l’appareil utilise des jetons JWT signés avec une clé HMAC. Le problème : cette clé est codée en dur dans le firmware.

C’est la définition même du CWE-798 (hard-coded credentials). Un attaquant qui récupère une copie du firmware — disponible auprès du constructeur ou extraite d’un appareil — en extrait le secret, puis forge des jetons JWT valides de toutes pièces. Avec un tel jeton, il s’authentifie au broker MQTT sans jamais avoir eu de compte légitime, et accède à l’interface de maillage du réseau.

La conséquence dépasse le routeur lui-même. Le bus MQTT est la colonne vertébrale du mesh : c’est par lui que les nœuds échangent leur état, leur configuration et leurs commandes. Compromettre ce bus, c’est s’offrir un point d’observation et de contrôle sur l’ensemble du réseau maillé — pas sur un seul boîtier.

Le second étage : de l’authentification forgée au root

Le jeton forgé n’est que le point d’entrée. La seconde faille, CVE-2026-71961, transforme cet accès en prise de contrôle totale. Le binaire sync_command, qui traite les commandes reçues via le bus MQTT, transmet l’entrée sans la filtrer à un point d’exécution shell dans command.lua.

C’est une injection de commandes OS classique (CWE-78). Un attaquant qui a accès au broker MQTT — ce que lui offre le jeton forgé — peut envoyer une commande contenant des métacaractères shell, et obtenir une exécution avec les privilèges root. La chaîne complète se résume ainsi : secret codé en dur → jeton forgé → accès MQTT → injection de commandes → root.

Un schéma endémique, pas un accident isolé

Ce qui frappe, ce n’est pas l’originalité de la faille — c’est sa banalité. Le couple « secret codé en dur + commande shell non filtrée » est un grand classique de l’équipement réseau grand public et PME. La même semaine, d’autres routeurs affichaient des scores comparables : TRENDnet TEW-WLC100 (CVSS 10.0), Comfast CF-N1-S (CVSS 10.0), Wavlink WN531P3 (CVSS 10.0), ou encore la gamme GL.iNet (CVSS 8.3, contournement d’autorisation sur le service WebDAV).

Le point commun : des fabricants qui traitent la sécurité comme une contrainte de coût, des firmwares jamais mis à jour après la vente, et des interfaces de gestion — ici le MQTT, ailleurs le WebDAV ou un telnet de debug — exposées par défaut. Le maillage, en particulier, élargit la surface : chaque nœud devient un relais potentiel.

Ce qu’il faut faire

Le correctif est le firmware 2.5.24, publié par Cudy le 19 août 2026. Mais le patch seul ne règle pas l’exposition structurelle. Voici l’ordre des opérations :

  • Mettre à jour tous les nœuds WR3000 vers le firmware 2.5.24 — un seul nœud non corrigé maintient la porte ouverte sur le mesh ;
  • Vérifier que le port MQTT (1883/8883) n’est pas exposé sur Internet : le maillage doit rester confiné au LAN ;
  • Isoler l’IoT et le réseau invité dans un VLAN séparé, sans route vers le réseau de production ;
  • Changer les secrets par défaut et désactiver les services de gestion distante que vous n’utilisez pas.
bash
# Scanner votre périmètre pour repérer un broker MQTT exposé (port 1883)
nmap -p 1883,8883 --open <plage-ip>

# Vérifier la version de firmware depuis l'interface d'administration du routeur
# Administration > Firmware : la version doit être >= 2.5.24

Le firmware corrige les deux failles. La segmentation, elle, corrige la classe de problème : un équipement réseau à secret codé en dur ne doit jamais être joignable depuis l’extérieur, patché ou non.

Verdict

Traitez le couple CVE-2026-71960 et CVE-2026-71961 comme une compromission à distance complète du routeur. Mettez à jour le firmware 2.5.24 sur tous les nœuds, puis vérifiez qu’aucun service de maillage n’est exposé sur Internet. Si vous gérez un parc de routeurs mesh Cudy, considérez chaque appareil non corrigé comme déjà compromis : le secret étant codé en dur, l’exploitation ne demande ni compétence particulière ni accès préalable.

La leçon vaut pour tout le matériel réseau grand public que vous laissez entrer dans votre périmètre : un appareil dont le secret est figé dans le firmware est un appareil qui ne peut pas être sécurisé, seulement isolé. Patch pour la faille, segmentation pour le principe.

Références

cve

Vulnérabilités liées

Le brief cyber, chaque mardi

Les failles qui comptent, les correctifs à appliquer, en dix minutes de lecture.

Pas de spam. Désinscription en un clic.
à lire ensuite

Sur le même sujet

Cisco corrige quatre failles à 10.0 dans Crosswork sans en divulguer le détail

Le 19 août 2026, Cisco a publié un correctif « durcissement » pour Crosswork qui neutralise quatre vulnérabilités notées CVSS 10.0, sans détailler une seule d’entre elles. Les opérateurs réseau doivent patcher leur plan de gestion à l’aveugle, en s’appuyant sur la confiance et non sur les faits.

← Retour au fil

Tapez au moins deux caractères.

naviguer ouvrir esc fermer