
Une nouvelle attaque de cache croisé du noyau Linux nommée SLUBStick réussit à 99% à convertir une vulnérabilité de tas limitée en une capacité de lecture et d’écriture arbitraire de la mémoire, permettant aux chercheurs d’élever les privilèges ou d’échapper aux conteneurs.
La découverte provient d’une équipe de chercheurs de l’Université de technologie de Graz qui a démontré l’attaque sur les versions 5.9 et 6.2 du noyau Linux (les plus récentes) en utilisant neuf CVE existants sur des systèmes 32 bits et 64 bits, indiquant une grande polyvalence.
De plus, l’attaque fonctionnait avec toutes les défenses modernes du noyau, telles que la Prévention de l’exécution en mode superviseur (SMEP), la Prévention de l’accès en Mode Superviseur (SMAP) et la Randomisation de la disposition de l’espace d’adressage du noyau (KASLR) actives.
SLUBStick sera présenté en détail lors de la prochaine conférence Usenix Security Symposium plus tard ce mois-ci. Les chercheurs présenteront l’escalade des privilèges et l’évasion des conteneurs dans le dernier Linux avec des défenses de pointe activées.
En attendant, le document technique publié contient tous les détails sur l’attaque et les scénarios d’exploitation potentiels.
Détails SLUBStick
Une façon dont le noyau Linux gère la mémoire de manière efficace et sécurisée consiste à allouer et à désallouer des blocs de mémoire, appelés « dalles », pour différents types de structures de données.
Des failles dans ce processus de gestion de la mémoire peuvent permettre aux attaquants de corrompre ou de manipuler des structures de données, appelées attaques de cache croisé. Cependant, ceux-ci sont efficaces environ 40% du temps et entraînent généralement des pannes du système tôt ou tard.
SLUBStick exploite une vulnérabilité de tas, telle qu’une écriture double libre, utilisateur après libre ou hors limites, pour manipuler le processus d’allocation de mémoire.

Ensuite, il utilise un canal latéral de synchronisation pour déterminer le moment exact de l’allocation/désallocation des blocs de mémoire, permettant à l’attaquant de prédire et de contrôler la réutilisation de la mémoire.
L’utilisation de ces informations de synchronisation augmente le succès de l’exploitation croisée à 99%, ce qui rend SLUBStick très pratique.

La conversion de la faille de tas en primitive de lecture et d’écriture de mémoire arbitraire se fait en trois étapes:
- Libérez des morceaux de mémoire spécifiques et attendez que le noyau les réutilise.
- Réaffectez ces blocs de manière contrôlée, en veillant à ce qu’ils soient réutilisés pour des structures de données critiques telles que des tables de pages.
- Une fois récupéré, l’attaquant écrase les entrées de la table de pages, obtenant la possibilité de lire et d’écrire n’importe quel emplacement mémoire.

Impact dans le monde réel
Comme pour la plupart des attaques impliquant un canal secondaire, SLUBStick nécessite un accès local sur la machine cible avec des capacités d’exécution de code. De plus, l’attaque nécessite la présence d’une vulnérabilité de tas dans le noyau Linux, qui sera ensuite utilisée pour obtenir un accès en lecture et en écriture à la mémoire.
Bien que cela puisse rendre l’attaque impraticable, cela présente certains avantages pour les attaquants.
Même pour les attaquants dotés de capacités d’exécution de code, Slapstick offre la possibilité d’obtenir une élévation de privilèges, de contourner les défenses du noyau, d’effectuer des évasions de conteneurs ou de l’utiliser dans le cadre d’une chaîne d’attaques complexe.
L’escalade de privilèges peut être utilisée pour élever les privilèges à root, permettant des opérations illimitées, tandis que l’échappement du conteneur peut être utilisé pour rompre avec les environnements en bac à sable et accéder au système hôte.
De plus, dans la phase de post-exploitation, Slapstick pourrait modifier les structures du noyau ou les crochets pour maintenir la persistance, ce qui rendrait les logiciels malveillants plus difficiles à détecter pour les défenseurs.

Ceux qui veulent plonger plus profondément dans le burlesque et expérimenter les exploits utilisés par les chercheurs de l’Université de Graz peuvent les trouver dans le référentiel GitHub du chercheur.