cve : Une collection de code relative à CVE-2016-0728 (divers auteurs)
Extraits de Linux, montrant l'évolution et la correction du bogue
Code d'exploitation de Perception Point avec commentaires ajoutés expliquant chaque ligne.
Un petit script qui utilise la fuite pour incrémenter le compteur d'utilisation, utile pour déterminer si le bogue existe sur votre système.
Une version de l'exploit qui contourne les wrappers d'appels système (pour les systèmes qui n'implémentent pas les wrappers keyctl).
Le premier correctif d'urgence de janvier 2016
La meilleure façon de dupliquer cet exploit est de trouver une version affectée d'une build Linux, listée ci-dessous. Les ISO peuvent contenir des correctifs rétroportés, vous devez donc télécharger le code source et le compiler vous-même.
L'exécution de l'exploit sur une version moderne d'Ubuntu (modifiée pour conserver le bogue) a donné des résultats étranges. J'ai écrit test.c pour le suivre, en sortant les données dans le fichier keylog. Le programme s'exécute indépendamment de l'exploit, en utilisant nanosleep pour contrôler la fréquence d'échantillonnage. keylog est la sortie d'une exécution à une période de 500 nanosecondes pendant environ 0,5 seconde.
Interprétation du fichier keylog : le nombre à gauche est le numéro d'itération. Il affiche une valeur lorsque la pente change. tState compte le nombre d'itérations depuis le dernier changement de pente. C'est complètement aléatoire et ne vaut pas la peine d'être étudié.
Pour ce test, la sortie était imprévisible et il n'y a pas eu de débordement d'entier, ce qui signifie que l'exploit échoue sur une version moderne, modifiée ou non. Compilez plutôt une version de la liste.
Versions affectées
Red Hat Enterprise Linux 7
CentOS Linux 7
Scientific Linux 7
Debian Linux stable 8.x (jessie)
Debian Linux testing 9.x (stretch)
SUSE Linux Enterprise Desktop 12
SUSE Linux Enterprise Desktop 12 SP1
SUSE Linux Enterprise Server 12
SUSE Linux Enterprise Server 12 SP1
SUSE Linux Enterprise Workstation Extension 12
SUSE Linux Enterprise Workstation Extension 12 SP1