Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2023-6931 — CVE-2023-6931 PoC de panique du noyau | Kitploit
Outils/GitHubGitHub/k0n9-log/cve-2023-6931
Criminalistique MémoireAnalyse des VulnérabilitésExploitationApprentissage et ÉducationExploitation de Binaires
GitHubk0n9-log/cve-2023-6931

CVE-2023-6931

CVE-2023-6931 PoC de panique du noyau

Voir le dépôt
22il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2023-6931

PoC de panique noyau pour CVE-2023-6931

Description

CVE-2023-6931 est une vulnérabilité dans perf_event qui conduit à un débordement de tampon de tas causé par un dépassement d'entier dans le read_size d'un groupe.

Qu'est-ce qu'un événement de performance (perf event) ?

perf_events est un cadre de surveillance et d'analyse des performances fourni par le noyau Linux. Ce cadre permet le suivi de diverses données liées aux performances générées par des composants matériels et logiciels.

Utilisations principales

  • Suivi des événements matériels Suit des événements tels que les cycles CPU, les compteurs d'exécution d'instructions, les défauts de cache, etc.
  • Suivi des événements logiciels Surveille des événements comme les changements de contexte, les défauts de page, les changements de processus, etc.
  • Suivi d'événements personnalisés Permet le suivi d'événements spécifiques à certaines applications ou au noyau.

Composants de perf

  • Appel système perf_event_open Une interface qui permet à l'espace utilisateur de configurer et contrôler les événements de performance dans le noyau. Il est utilisé pour créer, regrouper, contrôler ou lire des données d'événements.
  • Compteurs de performance Les données réelles suivies par le CPU et le noyau, telles que le nombre d'instructions exécutées ou l'utilisation du CPU
  • Groupes d'événements Permet de regrouper et gérer ensemble plusieurs événements de performance. Un événement chef de groupe agit comme représentant du groupe, tandis que les événements frères représentent les autres événements du groupe

Exigences

  1. La valeur de /proc/sys/kernel/perf_event_paranoid doit être 1 ou inférieure
  2. Le nombre de descripteurs de fichiers pouvant être ouverts doit être d'au moins environ 4100. Cela peut être vérifié et modifié à l'aide de la commande ulimit -n.
  3. L'option du noyau CONFIG_PERF_EVENTS doit être activée.

description

La vulnérabilité découle d'un dépassement d'entier dans le read_size d'un groupe. La fonction perf_event_validate_size effectue une validation sur le read_size. Cependant, la manière dont le read_size est validé ne vérifie que le read_size de l'événement actuel.

Le point clé est que lors de chaque validation, seul l'événement actuel est validé, tandis que les événements précédents ne le sont pas. Si PERF_FORMAT_GROUP est défini pour le chef de groupe, l'ajout d'un événement actuel peut augmenter le read_size du chef de groupe.

Cela provoque finalement un problème dans perf_read_group. Le calcul de event->read_size est basé sur le read_format du chef de groupe, multiplié par nr_siblings. Étant donné que la variable read_size est un u16 de 2 octets, la valeur maximale qu'elle peut contenir est 0xffff.

Pour exploiter cela, l'attaquant crée d'abord un événement chef de groupe avec toutes les options read_format possibles définies. Ensuite, de nombreux événements frères sont créés. Ces frères ne définissent que PERF_FORMAT_TOTAL_TIME_RUNNING dans le read_format pour garantir qu'il n'y ait pas de problèmes de validation dans perf_event_validate_size. En conséquence, la valeur nr_siblings devient extrêmement grande, mais comme chaque événement frère passe la validation individuellement, il n'y a pas de problèmes à ce stade.

Lorsque perf_read_group est appelé dans cet état, le read_size du chef de groupe continue d'augmenter car PERF_FORMAT_GROUP est défini. Finalement, cela conduit à un dépassement d'entier, et kzalloc alloue un très petit tampon. Cependant, comme le nombre réel d'événements est très grand, un débordement de tampon de tas se produit, provoquant une panique noyau.

Télécharger l’outil