Progres în crearea unui exploit pentru OpenSSH 9.1

Qualys a găsit o modalitate de a ocoli protecția malloc și dublă gratuită pentru a iniția un transfer de control în cod, folosind o vulnerabilitate în OpenSSH 9.1 despre care s-a determinat că are un risc scăzut de a crea un exploit funcțional. În același timp, posibilitatea de a crea un exploit de lucru rămâne o mare întrebare.

Vulnerabilitatea este cauzată de o pre-autentificare dublă gratuită. Pentru a crea condiții pentru ca vulnerabilitatea să se manifeste, este suficient să schimbați bannerul clientului SSH la „SSH-2.0-FuTTYSH_9.1p1” (sau un alt client SSH vechi) pentru a seta steagurile „SSH_BUG_CURVE25519PAD” și „SSH_OLD_DHGEX”. După setarea acestor steaguri, memoria pentru buffer-ul „options.kex_algorithms” este eliberată de două ori.

Cercetătorii de la Qualys, în timp ce manipulau vulnerabilitatea, au reușit să obțină controlul asupra registrului procesorului „%rip”, care conține un pointer către următoarea instrucțiune care urmează să fie executată. Tehnica de exploatare dezvoltată vă permite să transferați controlul în orice punct din spațiul de adrese al procesului sshd într-un mediu OpenBSD 7.2 neactualizat, furnizat implicit cu OpenSSH 9.1.

Se remarcă faptul că prototipul propus este o implementare doar a primei etape a atacului - pentru a crea un exploit de lucru, este necesar să ocoliți mecanismele de protecție ASLR, NX și ROP și să scăpați de izolarea sandboxului, ceea ce este puțin probabil. Pentru a rezolva problema ocolirii ASLR, NX și ROP, este necesară obținerea de informații despre adrese, ceea ce poate fi realizat prin identificarea unei alte vulnerabilități care duce la scurgeri de informații. O eroare în procesul părinte privilegiat sau kernel poate ajuta la ieșirea din sandbox.

Sursa: opennet.ru

Adauga un comentariu