Researchers Demonstrate OpenBSD Root Exploit Chaining 37-Year-Old Shared-Memory Bug

1 minute de lecture

Mis à jour :

Escalade de privilèges sur OpenBSD : Exploitation d’une faille vieille de 37 ans

Des chercheurs ont démontré une méthode d’escalade de privilèges locaux permettant d’obtenir les droits root sur OpenBSD 7.9. L’attaque repose sur le chaînage de deux vulnérabilités distinctes, contournant les protections matérielles (SMAP/SMEP) et logicielles (KARL) du système.

Points clés :

  • Origine ancienne : La faille principale exploite un dépassement d’entier dans la fonction shmat(4) lié à un compteur de mémoire partagée (shm_nattch) défini sur 16 bits depuis 1988.
  • Mécanisme d’attaque : En saturant ce compteur, l’attaquant provoque un dépassement de capacité (integer overflow), suivi d’une condition de course (race condition) menant à une vulnérabilité de type “use-after-free”.
  • Contournement des protections : L’exploitation tire parti du caractère déterministe des allocateurs mémoire du noyau OpenBSD, rendant les adresses de certaines structures critiques prévisibles malgré la randomisation KARL.
  • Chaînage : Une écriture hors limites (out-of-bounds) modifie les entrées de table de pages, permettant d’exécuter du code arbitraire en mode superviseur.

Vulnérabilités :

  • Aucun identifiant CVE n’a été attribué à ce jour.
  • Faille 1 : Dépassement d’entier dans le compteur de segments de mémoire partagée (shm_nattch).
  • Faille 2 : Vulnérabilité de type use-after-free et écriture hors limites dans le noyau, facilitant le contrôle de pointeurs de fonction.

Recommandations :

  • Mise à jour immédiate : Appliquer impérativement les correctifs via syspatch. Les failles ont été corrigées dans les errata 018 et 026 de septembre pour OpenBSD 7.9 (et 7.8 pour le dépassement d’entier).
  • Renforcement systémique : Les chercheurs préconisent l’implémentation de mesures de durcissement (hardening) supplémentaires, telles que la randomisation des allocateurs noyau, la sécurisation des listes chaînées et la randomisation du mappage auto-référentiel des tables de pages.

Source