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
RingBufferDetonator — Exploitation pour CVE-2021-3679 et document pour son correctif | Kitploit
Outils/GitHubGitHub/aegistudio/ringbufferdetonator
Analyse des VulnérabilitésExploitationArticles et RechercheApprentissage et Éducation
GitHubaegistudio/ringbufferdetonator

RingBufferDetonator

Exploitation pour CVE-2021-3679 et document pour son correctif

Voir le dépôt
911il y a 5 ansPas 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

Détonateur de Tampon Annulaire

Ceci est un programme de preuve de concept pour déclencher et prouver un bug logique dans rb_per_cpu_empty. Les programmes qui rencontrent le bug seront bloqués dans une boucle infinie dans l'espace noyau dans tracing_read_pipe et impossibles à suspendre ou terminer avec n'importe quel signal UNIX (y compris SIGKILL).

Bien qu'il présente un comportement similaire (boucle infinie et consommation CPU) au bug du calcul de seq_buf_used corrigé dans linux 4.5, ce programme vise à prouver l'existence d'un autre bug ayant une cause complètement différente et qui serait présent dans les noyaux des versions 3.10 à 5.14-rc1 (voir aussi le résultat d'exécution du POC).

AVERTISSEMENT : ce programme de preuve de concept peut bloquer votre linux, consommer beaucoup d'énergie et ne peut pas être terminé avec un signal UNIX une fois déclenché, utilisez-le à vos risques et périls.

Prérequis et Exécution

Ces paquets ou commandes doivent être installés avant d'exécuter le script de preuve de concept.

root@kitploit:~
gcc
realpath
nm

Bash et les commandes de traitement de chaînes comme awk et sont également requis, et sont probablement fournis avec votre distribution.

grep

Bien qu'il s'agisse d'un script bash, la partie du code spécifiant uprobe dépend de la plateforme (nous ne pouvons pas utiliser $argN dans uprobe), et nous supportons i386, x86_64, arm et aarch64. N'hésitez pas à ajouter votre propre support de plateforme.

Pour exécuter la preuve de concept, exécutez simplement la commande suivante avec les privilèges root :

root@kitploit:~
./rbdetonate

Résultats

5.14.0-rc2-00478-g2734d6c1b1a0.png

Si le bug est déclenché par la preuve de concept, un processus dd consommant un cœur CPU complet sera créé, et il ne peut pas être tué avec un signal UNIX comme SIGKILL seulement.

Le processus bash du script rbdetonate peut être tué, mais l'envoi du signal SIGINT peut le terminer ou non, selon l'implémentation de bash. Et les versions plus récentes de bash ne peuvent être tuées par SIGINT que lorsque le processus dd créé est en cours d'exécution.

5.14.0-rc2-00479-g86020194bc7e.png

Le rbdetonate peut se terminer et afficher Nothing buggy has been detected s'il ne peut pas créer le processus dd après plusieurs tentatives. Cependant, cela peut prendre du temps en raison de nos 8192 tentatives.

VersionReproduitCapture d'écran
5.14.0-rc2-00479-g86020194bc7e (Version corrigée)N5.14.0-rc2-00479-g86020194bc7e.png
5.14.0-rc2-00478-g2734d6c1b1a0 (5.14.0-rc2)Y5.14.0-rc2-00478-g2734d6c1b1a0.png
5.4.0-77-genericY5.4.0-77-generic.png
4.4.0-142-genericY4.4.0-142-generic.png

Commentaire : ce bug existe en théorie dans toutes les versions disposant de la fonctionnalité de traçage espace utilisateur (>=3.10), mais les versions plus anciennes du noyau n'ont pas uprobe fonctionnant correctement à bien des égards. Nous apprécierions que vous puissiez nous aider à corriger son comportement.

FAQ

  1. Eh bien, le programme fonctionne, mais comment se débarrasser de ce monstre ?

R : Exécutez simplement la commande echo > /sys/kernel/debug/tracing/instances/rbdetonate/trace avec les privilèges root pour faire sortir le programme de la boucle infinie.

  1. Des outils de compilation sont-ils nécessaires pour ce type d'exploitation ?

R : Non. Les outils de compilation utilisés ici servent uniquement à construire le programme rbwrite, qui produit un résultat déterministe en écrivant simplement dans les pages du tampon annulaire sur CPU#0, selon nos étapes conçues.

Pour cette preuve de concept, une version compilée du programme rbwrite comme code peut également être utilisée, et l'adresse du point de trace pourrait être récupérée après cela.

Pour utiliser le traçage linux, si les nuisances produites par les applications ne vous dérangent pas, ajouter des points de trace kprobe aux appels système et aux fonctions du noyau générera également des événements. Mais pour la preuve de concept, cela pourrait introduire de l'indéterminisme et n'est pas favorisé.

Télécharger l’outil