Progrés en la creació d'un exploit per a OpenSSH 9.1

Qualys va trobar una manera d'evitar el malloc i la protecció doble lliure per iniciar una transferència de control al codi mitjançant una vulnerabilitat a OpenSSH 9.1 que es va determinar que tenia un risc baix de crear un exploit que funcioni. Al mateix temps, la possibilitat de crear un exploit de treball continua sent una gran qüestió.

La vulnerabilitat és causada per una pre-autenticació doble lliure. Per crear condicions perquè la vulnerabilitat es manifesti, n'hi ha prou amb canviar el bàner del client SSH a "SSH-2.0-FuTTYSH_9.1p1" (o un altre client SSH antic) per establir les marques "SSH_BUG_CURVE25519PAD" i "SSH_OLD_DHGEX". Després de configurar aquests indicadors, la memòria per al buffer "options.kex_algorithms" s'allibera dues vegades.

Els investigadors de Qualys, mentre manipulaven la vulnerabilitat, van poder controlar el registre del processador "%rip", que conté un punter a la següent instrucció a executar. La tècnica d'explotació desenvolupada us permet transferir el control a qualsevol punt de l'espai d'adreces del procés sshd en un entorn OpenBSD 7.2 no actualitzat, subministrat per defecte amb OpenSSH 9.1.

Cal assenyalar que el prototip proposat només és una implementació de la primera etapa de l'atac: per crear un exploit que funcioni, cal evitar els mecanismes de protecció ASLR, NX i ROP i escapar de l'aïllament de la caixa de sorra, cosa que és poc probable. Per resoldre el problema de passar per alt ASLR, NX i ROP, és necessari obtenir informació sobre adreces, que es pot aconseguir identificant una altra vulnerabilitat que condueixi a la fuga d'informació. Un error al procés principal privilegiat o al nucli pot ajudar a sortir del sandbox.

Font: opennet.ru

Afegeix comentari