Le bug KCodes NetUSB expose des millions de routeurs aux attaques RCE

Netgear router

Un défaut d’exécution de code à distance de haute gravité identifié comme CVE-2021-45388 a été découvert dans le module de noyau KCodes NetUSB, utilisé par des millions de routeurs de divers fournisseurs.

L’exploitation réussie de cette faille permettrait à un acteur malveillant distant d’exécuter du code dans le noyau, et bien que certaines restrictions s’appliquent, l’impact est large et pourrait être sévère.

La découverte de la vulnérabilité provient de chercheurs de SentinelLabs qui ont partagé leur rapport technique avec EZpublish-france.fr avant sa publication.

Qu’est-ce que NetUSB et comment est-il ciblé

Certains fabricants de routeurs incluent des ports USB sur les appareils, permettant aux utilisateurs de partager des imprimantes et des clés USB sur le réseau.

NetUSB est une solution de connectivité de module de noyau développée par KCodes, permettant aux périphériques distants d’un réseau d’interagir avec les périphériques USB directement connectés à un routeur.

Schéma opérationnel NetUSB
Schéma opérationnel NetUSB
Source : KCodes

SentinelOne a découvert un segment de code vulnérable dans le module du noyau qui ne valide pas la valeur de taille d’un appel d’allocation de mémoire du noyau, ce qui a entraîné un débordement d’entier.

La fonction ‘SoftwareBus_fillBuf’ peut alors utiliser cette nouvelle région pour une écriture hors limites malveillante avec des données d’un socket réseau sous le contrôle de l’attaquant.

Certaines limitations peuvent rendre difficile l’exploitation de la vulnérabilité, comme décrit ci-dessous.

  • L’objet alloué sera toujours dans la dalle kmalloc-32 du tas du noyau. En tant que telle, la structure doit avoir une taille inférieure à 32 octets pour s’adapter.
  • La taille fournie n’est utilisée que comme taille de réception maximale et non comme montant strict.
  • La structure doit être pulvérisable d’un point de vue éloigné.
  • La structure doit avoir quelque chose qui peut être écrasé et qui la rend utile en tant que cible (par exemple une structure Type-Longueur-Valeur ou un pointeur).

Cependant, le module NetUSB vulnérable a un délai d’attente de seize secondes pour recevoir une requête, permettant plus de flexibilité lors de l’exploitation d’un périphérique.

« Bien que ces restrictions rendent difficile l’écriture d’un exploit pour cette vulnérabilité, nous pensons que ce n’est pas impossible et donc ceux qui ont des routeurs Wi-Fi peuvent avoir besoin de rechercher des mises à jour de firmware pour leur routeur », a averti SentinelOne dans leur rapport.

Fournisseurs concernés et correctifs

Les fournisseurs de routeurs qui utilisent des modules NetUSB vulnérables sont Netgear, TP-Link, Tenda, EDiMAX, Dlink et Western Digital.

On ne sait pas quels modèles sont affectés par CVE-2021-45388, mais il est généralement conseillé d’utiliser des produits activement pris en charge qui reçoivent des mises à jour régulières du micrologiciel de sécurité.

Étant donné que la vulnérabilité affecte de nombreux fournisseurs, Sentinel One a d’abord alerté KCodes le 9 septembre 2021 et a fourni un script PoC (preuve de concept) le 4 octobre 2021 pour vérifier le correctif publié ce jour-là.

Les fournisseurs ont été contactés en novembre et une mise à jour du firmware était prévue pour le 20 décembre 2021.

Netgear a publié une mise à jour de sécurité pour le correctif CVE-2021-45388 sur les produits concernés et pris en charge le 14 décembre 2021.

Selon le avis de sécurité publié le 20 décembre 2021, les produits Netgear concernés sont les suivants :

  • D7800 corrigé dans la version du firmware 1.0.1.68
  • R6400v2 corrigé dans la version du firmware 1.0.4.122
  • R6700v3 corrigé dans la version du firmware 1.0.4.122

La solution mise en œuvre par Netgear consistait à ajouter un nouveau contrôle de taille à la fonction « taille fournie », empêchant l’écriture hors limites.

Correction appliquée par Netgear
Correction appliquée par Netgear
Source : SentinelLabs

EZpublish-france.fr a contacté tous les fournisseurs concernés pour leur demander un commentaire sur le calendrier de publication d’une mise à jour du micrologiciel, mais nous n’avons pas encore reçu de réponse.