
Recherche et preuve de concept pour la vulnérabilité de dépassement de tas du noyau Linux CVE-2022-0185.
Recherche et preuve de concept pour la vulnérabilité de débordement du tas du noyau Linux CVE-2022-0185.
CVE-2022-0185 – Analyse du débordement du tas du noyau Linux
CVE-2022-0185 est une vulnérabilité de débordement de tampon sur le tas dans l'implémentation du contexte de système de fichiers du noyau Linux. Le problème existe dans la fonction legacy_parse_param() et peut permettre une élévation de privilèges locaux sous certaines configurations.
Identifiant CVE : CVE-2022-0185
Composant : contexte de système de fichiers du noyau Linux
Type de vulnérabilité : débordement de tampon sur le tas
Vecteur d'attaque : local
Impact : élévation de privilèges
Auteur : Sandesh Pantha Type de projet : recherche en sécurité et démonstration pédagogique
Références officielles :
Entrée NVD : https://nvd.nist.gov/vuln/detail/CVE-2022-0185
Avis Openwall : https://www.openwall.com/lists/oss-security/2022/01/18/7
Commit de correction du noyau Linux : https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=722d94847de29310e8aa03fcbdb41fc92c521756
La vulnérabilité est causée par une vérification incorrecte des limites lors de l'analyse des paramètres de système de fichiers via l'appel système fsconfig().
Dans legacy_parse_param() :
Les données contrôlées par l'utilisateur sont ajoutées à un tampon interne
Le calcul de taille ne prévient pas correctement le débordement
Des appels répétés peuvent entraîner une corruption de la mémoire du tas
Cela entraîne une écriture hors limites dans des objets adjacents du tas, ce qui peut potentiellement conduire à :
Corruption de la mémoire du noyau
Divulgation d'informations
Conditions d'utilisation après libération (use-after-free)
Élévation de privilèges
Les versions affectées incluent les noyaux Linux antérieurs à :
5.11.0
5.16.2
5.15.16
5.10.93
Ce projet démontre :
Création de contexte de système de fichiers à l'aide de fsopen()
Injection de paramètres via fsconfig()
Techniques de heap spraying du noyau
Grooming du tas basé sur les files de messages
Spraying de tampons de sockets
Modèles de réutilisation contrôlée d'objets
L'objectif de ce dépôt est pédagogique : comprendre le comportement du tas du noyau et la méthodologie d'exploitation de vulnérabilités dans un environnement de laboratoire contrôlé.
Les tests doivent être effectués uniquement dans une machine virtuelle isolée.
Configuration recommandée :
Ubuntu 20.04 ou Debian avec un noyau vulnérable
QEMU ou VirtualBox
Instantané (snapshot) activé avant les tests
Environnement non productif
Ne jamais exécuter ceci sur des systèmes de production.
La vulnérabilité a été corrigée en rectifiant la logique de validation des limites dans legacy_parse_param().
Étapes d'atténuation :
Mettre à jour vers une version corrigée du noyau
Désactiver les espaces de noms utilisateur non privilégiés lorsque cela est possible
Surveiller les activités anormales du contexte de système de fichiers
Versions du noyau contenant le correctif :
5.16.2
5.15.16
5.10.93
Référence du correctif : https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
Compréhension approfondie des mécanismes internes du noyau Linux
Connaissance de la disposition de la mémoire du tas
Manipulation du cycle de vie des objets du noyau
Méthodologie de recherche sécurisée des vulnérabilités
Pratiques de divulgation responsable
Ce projet est fourni à des fins pédagogiques et de recherche en sécurité défensive uniquement.
N'essayez pas d'utiliser ces connaissances sur des systèmes sans autorisation explicite.