Faille OpenBSD : un bug vieux de 37 ans offre les droits root

Une faille OpenBSD vieille de 37 ans permet d'obtenir les droits root sur la version 7.9, avec un exploit public.
Une faille OpenBSD restée invisible pendant environ 37 ans vient de revenir sur le devant de la scène. Un exploit d’élévation de privilèges locale, publié aujourd’hui, permet d’obtenir les droits root sur OpenBSD 7.9. Ainsi, il combine deux vulnérabilités du noyau. La première est un dépassement d’entier ancien, lié à la mémoire partagée. La seconde est une faille distincte, également située dans le noyau.
L’éditeur de sécurité Calif a découvert et signalé ces défauts. Ensuite, il a publié une analyse détaillée, accompagnée d’un code de preuve de concept complet. Cette publication est intervenue après la réaction d’OpenBSD. Toutefois, les informations disponibles ne mentionnent aucun identifiant CVE.
Une faille OpenBSD dans un système réputé sûr
OpenBSD occupe une place à part parmi les systèmes d’exploitation. En effet, son projet met en avant la sécurité par défaut et la revue de code rigoureuse. Ainsi, il sert souvent de base à des pare-feu, des routeurs et des serveurs exposés.
Cette réputation rend l’affaire d’autant plus marquante. En effet, un défaut vieux de 37 ans a traversé des décennies d’audits sans être corrigé. Il rappelle donc qu’aucun code n’est à l’abri, même quand il est très scruté.
Un dépassement d’entier survient quand un calcul produit une valeur trop grande pour son type. Le résultat se retrouve alors tronqué ou bouclé. Ensuite, le noyau peut mal dimensionner une zone mémoire. Cette erreur ouvre parfois la voie à des accès hors limites. Par conséquent, la mémoire peut être corrompue.
Comment l’exploit contourne KARL, SMAP et SMEP
Le point le plus notable tient à la chaîne d’exploitation. En effet, les chercheurs ne s’appuient pas sur un seul bug. Ils en enchaînent deux. Ainsi, ils peuvent franchir plusieurs barrières successives.
L’exploit contourne d’abord KARL. Ce mécanisme d’OpenBSD réorganise le noyau de façon aléatoire à chaque démarrage. Par conséquent, un attaquant ne connaît pas à l’avance l’emplacement des fonctions et des données. Sans cette information, la plupart des attaques deviennent bien plus difficiles.
L’exploit déjoue également deux protections matérielles des processeurs :
- SMEP empêche le noyau d’exécuter du code situé dans l’espace utilisateur.
- SMAP l’empêche d’accéder directement aux données de cet espace, sauf autorisation explicite.
Ces protections visent à bloquer les techniques classiques d’élévation de privilèges. Pourtant, la chaîne présentée par Calif les met en échec sur OpenBSD 7.9. Autrement dit, un utilisateur local sans droits particuliers peut devenir administrateur de la machine.
Quelles conséquences pour les administrateurs
Il s’agit d’une faille locale. L’attaquant doit donc déjà pouvoir exécuter du code sur le système. Néanmoins, le risque n’est pas négligeable.
Un compte à faibles privilèges suffit comme point de départ. Il peut provenir d’un service compromis, d’un identifiant volé ou d’un utilisateur malveillant. De là, l’élévation vers root donne le contrôle complet de la machine. Ensuite, l’attaquant peut lire des données sensibles, modifier la configuration ou installer une porte dérobée.
De plus, la publication d’un code complet change la donne. Dès lors, un attaquant moyennement qualifié peut adapter l’exploit. Le délai entre la divulgation et les premières tentatives d’abus se réduit donc fortement.
Il faut toutefois rester prudent sur certains points. Les informations disponibles ne précisent pas le détail des versions corrigées. De plus, elles ne signalent pas d’exploitation active dans la nature. Les administrateurs doivent donc se référer aux avis officiels d’OpenBSD.
Recommandations
Les équipes qui exploitent OpenBSD 7.9 peuvent agir dès maintenant. Voici les mesures à privilégier :
- Vérifier les avis de sécurité d’OpenBSD et appliquer les correctifs disponibles, par exemple avec
syspatch. - Redémarrer le système après la mise à jour, afin que le noyau corrigé soit bien actif.
- Limiter les comptes locaux aux personnes et aux services réellement nécessaires.
- Surveiller les connexions inhabituelles et les élévations de privilèges suspectes.
- Isoler les services exposés pour réduire l’impact d’une compromission initiale.
Ce qu’il faut retenir
- Un exploit public donne les droits root sur OpenBSD 7.9.
- Il enchaîne un dépassement d’entier d’environ 37 ans avec une autre faille du noyau.
- Il contourne KARL, SMAP et SMEP.
- Calif a découvert les défauts et publié l’analyse ainsi que le code complet.
- La mise à jour reste la priorité pour tous les administrateurs concernés.
Source : Researchers Demonstrate OpenBSD Root Exploit Chaining 37-Year-Old Shared-Memory Bug