Dans le projet en développement OpenWrt, des vulnérabilités critiques (CVE-2024-54143) ont été identifiées dans l'outil ASU (Attended SysUpgrade), permettant de compromettre les artefacts de compilation diffusés via le service sysupgrade.openwrt.org ou des serveurs ASU tiers, et d'installer des images de firmware modifiées par un attaquant sur les systÚmes des utilisateurs utilisant le mode « attented upgrade » via l'interface web selector.openwrt.org ou l'outil de ligne de commande attended.sysupgrade.
Pour rĂ©ussir l'attaque, il suffit Ă l'attaquant d'envoyer une requĂȘte de compilation au serveur ASU (de telles requĂȘtes peuvent ĂȘtre envoyĂ©es par n'importe quel utilisateur sans authentification). Par des manipulations avec une liste de paquets spĂ©cialement conçue, l'attaquant peut organiser l'envoi d'images malveillantes prĂ©cĂ©demment gĂ©nĂ©rĂ©es en rĂ©ponse aux requĂȘtes de compilation lĂ©gitimes d'autres utilisateurs.
Le service ASU est utilisé dans OpenWrt pour générer et installer des mises à jour de firmware sans perdre les configurations existantes et les paquets installés par l'utilisateur. Via l'interface web ou l'outil de ligne de commande, l'utilisateur envoie une demande de génération d'une image de firmware mise à jour, en spécifiant les paquets installés sur son systÚme. AprÚs un certain temps, le serveur ASU crée une image correspondant au contenu commandé, aprÚs quoi l'utilisateur télécharge celle-ci et la flashe sur son appareil. Une option supplémentaire permet de conserver les réglages existants dans le firmware mis à jour.
Le traitement des demandes des utilisateurs est assuré par le serveur ASU, qui lance une compilation automatique des images de firmware à l'aide de l'outil ImageBuilder, tout en maintenant un cache d'assemblages précédemment préparés. Si l'utilisateur demande une image qui a déjà été compilée et qui est toujours d'actualité, le systÚme renvoie immédiatement l'image disponible dans le cache sans lancer le processus de compilation. le serveur et conserve sa pertinence, le systÚme rend immédiatement l'image disponible depuis le cache sans initier le processus de compilation.
Le comportement de l'attaque est devenu possible grùce à deux vulnérabilités :
- Une vulnĂ©rabilitĂ© dans le gestionnaire de requĂȘtes build_reques.py de l'outil Imagebuilder permet d'injecter ses propres commandes dans le processus de construction en transmettant des noms de paquets spĂ©cialement formatĂ©s par l'utilisateur. Cette vulnĂ©rabilitĂ© est causĂ©e par l'absence de vĂ©rification adĂ©quate des caractĂšres spĂ©ciaux dans les noms de paquets avant de les utiliser comme arguments de l'outil make. En exploitant cette vulnĂ©rabilitĂ©, un attaquant peut crĂ©er sur le serveur des images de firmware malveillantes, signĂ©es avec une clĂ© de construction valide.
- Une vulnĂ©rabilitĂ© dans la bibliothĂšque util.py, causĂ©e par le fait que les hachages SHA-256 utilisĂ©s pour vĂ©rifier la prĂ©sence dans le cache des images de firmware dĂ©jĂ prĂȘtes, Ă©taient tronquĂ©s Ă 12 caractĂšres, ce qui rĂ©duisait considĂ©rablement le niveau d'entropie et permettait de crĂ©er une image malveillante dont le hachage correspond Ă une image lĂ©gitime par collision. CombinĂ©e avec la vulnĂ©rabilitĂ© dans Imagebuilder, le problĂšme des hachages pouvait ĂȘtre exploitĂ© par un attaquant pour « contaminer » le cache du serveur ASU et y placer des images malveillantes, renvoyĂ©es aux demandes des utilisateurs ordinaires.
Le changement, aprÚs lequel une attaque est devenue possible, a été effectué le 8 juillet. Le problÚme a été résolu le 4 décembre. Pour assurer le fonctionnement du service ASU, des systÚmes distincts ont été utilisés serveurs, qui ne se chevauchent pas avec les principaux systÚmes de construction du projet, séparés d'OpenWrt Buildbot et n'ayant pas accÚs à des ressources sensibles telles que les clés SSH et les certificats pour former des signatures numériques.
Il est affirmĂ© que les dĂ©veloppeurs d'OpenWrt n'ont trouvĂ© aucune trace de compromission de l'infrastructure du projet, mais pour des raisons de sĂ©curitĂ©, ils ont rĂ©installĂ© complĂštement les systĂšmes sur lesquels fonctionnaient les composants vulnĂ©rables. Le problĂšme n'a pas affectĂ© les images officielles distribuĂ©es via le site downloads.openwrt.org, et lors de l'analyse des journaux de compilation, aucune trace de requĂȘtes malveillantes n'a Ă©tĂ© trouvĂ©e. De plus, comme un nettoyage automatique des constructions datant de plus de 7 jours est effectuĂ© sur les serveurs ASU, il a Ă©tĂ© impossible d'auditer les anciennes constructions.
La probabilitĂ© d'utiliser les vulnĂ©rabilitĂ©s identifiĂ©es dans la pratique pour distribuer des images malveillantes via l'infrastructure OpenWrt est Ă©valuĂ©e par les reprĂ©sentants d'OpenWrt comme proche de zĂ©ro; nĂ©anmoins, il est recommandĂ© aux utilisateurs d'ASU de remplacer les firmwares OpenWrt sur leurs appareils par la mĂȘme version.
Source : opennet.ru
