Six vulnérabilités d’U-Boot pourraient permettre l’exécution de code avant le démarrage sur des appareils embarqués
Des chercheurs en sécurité ont révélé six vulnérabilités dans U-Boot, le chargeur d’amorçage open source largement utilisé dans les systèmes Linux embarqués, les contrôleurs de gestion de serveurs d’e...
Des chercheurs en sécurité ont révélé six vulnérabilités dans U-Boot, le chargeur d’amorçage open source largement utilisé dans les systèmes Linux embarqués, les contrôleurs de gestion de serveurs d’entreprise, les équipements réseau, les systèmes industriels et les appareils de l’Internet des objets. Ces failles affectent la logique de vérification des signatures FIT d’U-Boot et pourraient permettre à un attaquant de provoquer des plantages ou, dans certains cas, d’exécuter du code avant le début du chargement du système d’exploitation.
U-Boot intervenant au début du processus de démarrage, les faiblesses de ses routines de validation peuvent avoir de graves conséquences. Si un attaquant parvient à manipuler la séquence de démarrage, il pourrait contourner les mécanismes de sécurité, modifier le comportement du micrologiciel ou installer un logiciel malveillant persistant, difficile à détecter une fois le système en fonctionnement.
Ce que les failles permettent de faire
Binarly, qui a signalé ces problèmes, indique que la gravité des vulnérabilités va du déni de service à l’exécution de code arbitraire lors de la vérification du micrologiciel. Quatre de ces failles peuvent forcer les appareils concernés à planter, tandis que deux pourraient permettre l’exécution de code malveillant pendant qu’U-Boot vérifie une image non fiable.
- Une faille peut faire planter U-Boot et pourrait permettre l’exécution de code dans certaines conditions.
- Une faille de corruption mémoire pourrait être exploitée pour exécuter du code arbitraire.
- Une lecture hors limites peut provoquer le plantage du chargeur d’amorçage.
- Le déréférencement d’un pointeur nul peut également mettre l’appareil hors service.
- Une validation incorrecte de données stockées en externe peut provoquer un plantage.
- Un problème de récursion non bornée peut épuiser la mémoire de la pile et interrompre le processus de démarrage.
Binarly précise qu’une grande partie du code vulnérable est présente depuis U-Boot 2013.07, ce qui signifie que le problème pourrait concerner plus de 50 versions stables ainsi que de nombreux forks développés par les fabricants.
État des correctifs et exposition
L’entreprise a signalé les failles aux responsables de la maintenance d’U-Boot et a soumis des correctifs, qui ont désormais été intégrés au projet amont. Toutefois, les conséquences pour les clients dépendront de la décision des fabricants de matériel d’intégrer ces modifications à leurs propres versions du micrologiciel et de publier des mises à jour.
Les produits plus anciens et non pris en charge sont donc particulièrement exposés, notamment les appareils qui ne bénéficient plus de maintenance du micrologiciel. Sur les systèmes dotés de fonctionnalités de gestion à distance, comme les contrôleurs de gestion de carte mère, un attaquant ayant déjà accédé à l’interface de gestion pourrait transmettre une image de micrologiciel spécialement conçue à cet effet sans avoir besoin d’un accès physique à l’appareil.
