Progrès dans la création d'un exploit pour OpenSSH 9.1

Qualys a trouvé un moyen de contourner la protection malloc et double-free pour initier un transfert de contrôle vers le code en utilisant une vulnérabilité dans OpenSSH 9.1 qui a été déterminée comme présentant un faible risque de création d'un exploit fonctionnel. Dans le même temps, la possibilité de créer un exploit fonctionnel reste une grande question.

La vulnérabilité est causée par une pré-authentification double gratuite. Pour créer les conditions pour que la vulnérabilité se manifeste, il suffit de changer la bannière du client SSH en « SSH-2.0-FuTTYSH_9.1p1 » (ou un autre ancien client SSH) afin de définir les drapeaux « SSH_BUG_CURVE25519PAD » et « SSH_OLD_DHGEX ». Après avoir défini ces indicateurs, la mémoire du tampon « options.kex_algorithms » est libérée deux fois.

Les chercheurs de Qualys, en manipulant la vulnérabilité, ont pu prendre le contrôle du registre du processeur « %rip », qui contient un pointeur vers la prochaine instruction à exécuter. La technique d'exploitation développée permet de transférer le contrôle à n'importe quel point de l'espace d'adressage du processus sshd dans un environnement OpenBSD 7.2 non mis à jour, fourni par défaut avec OpenSSH 9.1.

Il est à noter que le prototype proposé n'est qu'une implémentation de la première étape de l'attaque : pour créer un exploit fonctionnel, il est nécessaire de contourner les mécanismes de protection ASLR, NX et ROP et d'échapper à l'isolement du bac à sable, ce qui est peu probable. Pour résoudre le problème du contournement d'ASLR, NX et ROP, il est nécessaire d'obtenir des informations sur les adresses, ce qui peut être obtenu en identifiant une autre vulnérabilité conduisant à une fuite d'informations. Un bug dans le processus parent privilégié ou dans le noyau peut aider à quitter le bac à sable.

Source: opennet.ru

Ajouter un commentaire