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-2016-0728-testbed — Un banc d'essai pour CVE-2016-0728, un bug de fuite/dépassement de refcount dans Linux | Kitploit
Outils/GitHubGitHub/neuschaefer/cve-2016-0728-testbed
Analyse des VulnérabilitésExploitationApprentissage et ÉducationExploitation de Binaires
GitHubneuschaefer/cve-2016-0728-testbed

cve-2016-0728-testbed

Un banc d'essai pour CVE-2016-0728, un bug de fuite/dépassement de refcount dans Linux

Voir le dépôt
51il y a 10 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

Banc d'essai pour CVE-2016-0728

Ce dépôt contient un programme de test pour CVE-2016-0728, une fuite de compteur de références (refcount) et un débordement dans Linux, menant à une utilisation après libération (use-after-free).

Le bogue a été découvert et expliqué par Perception Point. Je ne suis pas affilié à eux.

Utilisation

root@kitploit:~
Welcome to the CVE-2016-0728 testbed
sizeof(struct msg_msg) == 0x30, sizeof(struct key) == 0xb8

PID: 27673, UID: (1000/1000)
Keyring: 1b66e5d6, "test-1a328d6e"
Usage:   1
Press a key: (f)ork (i)ncref (a)uto-incref (r)evoke (h)eap-spray (s)hell (q)uit

Sur mon système de test, un shell root pouvait être obtenu de la façon suivante :

  1. Augmenter le refcount jusqu'à -2 ; si vous incrémentez trop souvent, vous risquez de faire planter le noyau.
  2. Effectuer deux fork pour le faire déborder, de sorte que le ramasse-miettes des clés libère le keyring.
  3. Arroser le tas (heap) avec de faux keyrings.
  4. Appeler revoke
  5. execl("/bin/sh", "sh", NULL)

J'ai trouvé utile d'exécuter watch -n0.1 cat /proc/keys pour voir ce qui se passe.

Portabilité

Ce code n'a été testé que sur x86-64, mais il devrait fonctionner sur d'autres architectures également, car je n'ai pas utilisé de décalages magiques, mais j'ai copié les définitions de structures depuis les en-têtes Linux et utilisé sizeof (sauf que j'ai codé en dur les adresses de prepare_kernel_cred et commit_creds).

Télécharger l’outil