
Exploit local d'élévation de privilèges basé uniquement sur les données pour le noyau Linux io_uring CVE-2024-0582, utilisant des structures de fichiers pulvérisées et des hooks ext4_file_operations pour créer un utilisateur backdoor.
Une attaque uniquement par données basée sur CVE-2024-0582
L'exploit suit la stratégie décrite dans cet article de blog, à l'exception que je n'ai pas utilisé de processus enfant pour ouvrir des fichiers.
J'ai trouvé certains exploits sur GitHub qui suivent la stratégie de cette analyse.
Après avoir reproduit l'exploit avec un détournement de flux de contrôle basé sur des sockets, j'ai essayé d'implémenter l'exploit avec une attaque uniquement par données, qui ne semble pas encore être open source.
J'ai fourni les deux analyses ci-dessus et https://github.com/ysanatomic/io_uring_LPE-CVE-2024-0582/blob/main/exploit.c à Claude en disant :
Pourriez-vous modifier le code pour qu'il corresponde à l'attaque uniquement par données ? Cela signifie ouvrir un fichier au lieu d'un socket, chercher ext4_file_operations au lieu de egg, supprimer le détournement de flux de contrôle et modifier les permissions du fichier.
Cela a généré un code avec un processus enfant. Mais je pense qu'il est difficile de déboguer si j'utilise un processus enfant. J'ai donc dit :
Pourquoi ne pas ouvrir le fichier dans le processus, sans utiliser un enfant ?
Ensuite, il a généré presque le code existant.
Puis j'ai :
ext4_fops_offset.gcc exploit.c -o exploit -luring
./exploit
sudo cat /etc/passwd # Si vous pouvez utiliser sudo