Dans le système de construction Buildroot, destiné à créer des environnements Linux embarqués, six vulnérabilités ont été détectées, permettant, lors d'une interception de trafic transit (MITM), d'apporter des modifications aux images système générées ou d'exécuter du code au niveau du système de construction. Les vulnérabilités ont été corrigées dans les versions Buildroot 2023.02.8, 2023.08.4 et 2023.11.
Les cinq premières vulnérabilités (CVE-2023-45841, CVE-2023-45842, CVE-2023-45838, CVE-2023-45839, CVE-2023-45840) concernent le code de vérification de l'intégrité des paquets par hachage. Les problèmes proviennent de la possibilité d'utiliser HTTP pour télécharger des fichiers et de l'absence de fichiers de hachage de vérification pour certains paquets, ce qui permet de remplacer le contenu de ces paquets tout en ayant la possibilité d'intercepter le trafic de construction. de serveurs (par exemple, lors de la connexion de l'utilisateur à un réseau sans fil contrôlé par l'attaquant).
En particulier, les paquets aufs et aufs-util étaient téléchargés via HTTP et n'étaient pas vérifiés par hachage. Les hachages manquaient également pour les paquets riscv64-elf-toolchain, versal-firmware et mxsldr, qui étaient par défaut téléchargés via HTTPS, mais en cas de problème, revenaient à un téléchargement non chiffré depuis l'hôte http://sources.buildroot.net. En l'absence de fichiers «.hash», l'outil Buildroot considérait la vérification comme réussie et traitait les paquets téléchargés, appliquant notamment les patchs inclus dans les paquets et exécutant des scripts de construction. En ayant la possibilité de remplacer les paquets téléchargés, un attaquant pouvait y ajouter ses propres correctifs ou fichiers de configuration Makefiles, ce qui permettait d'apporter des modifications à l'image résultante ou aux scripts du système de construction et d'exécuter son propre code.
La sixième vulnérabilité (CVE-2023-43608) est causée par une erreur dans la mise en œuvre de la fonctionnalité BR_NO_CHECK_HASH_FOR, permettant de désactiver la vérification de l'intégrité par hachage pour des paquets spécifiques. Certains paquets, tels que le noyau Linux, U-Boot et versal-firmware, permettaient le téléchargement des dernières versions pour lesquelles des hachages de vérification n'avaient pas encore été créés. Pour ces versions, l'option BR_NO_CHECK_HASH_FOR était appliquée, désactivant la vérification par hachage. Les données étaient téléchargées via HTTPS, mais par défaut, en cas d'échec du téléchargement, il y avait un retour au recours à source.buildroot.net sans chiffrement via le protocole http://. L'attaquant, lors d'une attaque MITM, pouvait bloquer la connexion au serveur HTTPS et le téléchargement revenait alors à http://sources.buildroot.net.
Source : opennet.ru
