Progreso na construción dun exploit para OpenSSH 9.1

Qualys atopou un xeito de evitar o malloc e a protección dobre libre para iniciar unha transferencia de control ao código mediante unha vulnerabilidade en OpenSSH 9.1 que se determinou que tiña baixo risco de crear un exploit que funcione. Ao mesmo tempo, a posibilidade de crear un exploit que funcione segue sendo unha gran cuestión.

A vulnerabilidade é causada por unha pre-autenticación dobre libre. Para crear condicións para que se manifeste a vulnerabilidade, abonda con cambiar o banner do cliente SSH a "SSH-2.0-FuTTYSH_9.1p1" (ou outro cliente SSH antigo) para establecer as marcas "SSH_BUG_CURVE25519PAD" e "SSH_OLD_DHGEX". Despois de establecer estas marcas, a memoria para o búfer "options.kex_algorithms" liberase dúas veces.

Os investigadores de Qualys, mentres manipulaban a vulnerabilidade, puideron facerse co control do rexistro do procesador "%rip", que contén un punteiro á seguinte instrución a executar. A técnica de explotación desenvolvida permítelle transferir o control a calquera punto do espazo de enderezos do proceso sshd nun ambiente OpenBSD 7.2 non actualizado, que se proporciona por defecto con OpenSSH 9.1.

Nótase que o prototipo proposto é unha implementación só da primeira fase do ataque: para crear un exploit que funcione, é necesario evitar os mecanismos de protección ASLR, NX e ROP e escapar do illamento da caixa de area, o que é improbable. Para resolver o problema de pasar por alto ASLR, NX e ROP, é necesario obter información sobre enderezos, que se pode conseguir identificando outra vulnerabilidade que leva a fugas de información. Un erro no proceso principal ou no núcleo con privilexios pode axudar a saír do sandbox.

Fonte: opennet.ru

Engadir un comentario