Décidément le monde des routeurs accumule les failles de sécurité (Mikrotik ou routeurs WiFi en fin d’année 2021). Aujourd’hui, c’est une vulnérabilité connue sous le nom de CVE-2021-45388 qui touche le module du noyau Linux, NetUSB de KCodes. Un bug critique (score CVS de 9,8), car il autorise de l’exécution de code à distance (RCE). A noter que ce composant est utilisé par des millions de routeurs y compris WiFi de plusieurs marques différentes (Netgear, TP-Link, Tenda, EDiMAX, D-Link, Western Digital,…).  

La découverte de la faille est attribuée à des chercheurs de SentinelLabs. Comme indiqué, elle touche NetUSB, il s’agit d’une solution de connectivité USB sur IP du noyau Linux développée par KCodes. Concrètement, il permet aux utilisateurs de partager des périphériques (imprimantes, disques durs externes, lecteur flash,…) branchés en USB sur le routeur et d’y accéder à distance.

Des correctifs déjà émis par des équipementiers

Les experts de SentinelOne ont constaté un faille de dépassement de la mémoire tampon (buffer overflow) dans un bout de code. Ce dernier ne valide pas l’appel du Kernel sur la valeur de la taille de l’allocation mémoire. En l’occurrence, la vulnérabilité s’appuie sur la fonction « SoftwareBus_fillBuf » pour réécrire du code malveillant. Si cela apparait simple, les chercheurs émettent des limitations pour se servir de cette faille, notamment sur la taille de l’objet alloué.

Malgré ses restrictions, ils ont réalisé un PoC soumis à KCodes en octobre dernier après l’avoir alerté pour corriger la faille au début septembre. Les fournisseurs impactés ont été averti en novembre, même s’il est impossible de savoir quels routeurs exactement sont touchés. Certains équipementiers comme Netgear ont déployé des correctifs sur leurs firmwares en décembre 2021.