
Expériences liées à CVE-2015-3456
Il y a :
exploit/ est un « exploit » (il fait juste planter QEMU).mock/ contient une version allégée de QEMU. Seule la
vulnérabilité subsiste.patch/ contient un programme pour patcher une instance en cours
d'exécution de QEMU. L'objectif principal est de ne pas avoir besoin
des symboles de débogage, ni de l'exécutable d'origine sur le disque.
Par conséquent, certaines informations doivent être fournies
pour que ce programme fonctionne comme prévu.L'idée principale derrière tout le patch à chaud est de modifier le
tableau command_to_handler pour faire pointer chaque commande vers la
fonction « non implémentée ». Tant que le processus est partiellement
arrêté par ptrace (seul le thread principal l'est), cela semble être un
moyen sûr de corriger la vulnérabilité (tant que vous ne vous souciez
pas que le contrôleur de lecteur de disquettes ne fonctionne plus).
Ce type de patch fonctionne parce que command_to_handler est une
variable statique non initialisée et se retrouve donc dans le segment
BSS, qui est accessible en écriture. De plus, sauf pour les PIE, la
position de ce segment en mémoire est connue au moment de la
compilation. Malheureusement, QEMU est généralement compilé en PIE et,
par conséquent, ce n'est pas le cas.
Bien sûr, à utiliser à vos risques et périls : modifier un processus en cours d'exécution pourrait semer le chaos dans le monde entier !
Des informations plus détaillées sont disponibles ici : http://vincent.bernat.im/en/blog/2015-hotfix-qemu-venom.html
Pour mieux comprendre le patch à chaud, voici quelques liens :