Pokrok vo vytváraní exploitu pre OpenSSH 9.1

Qualys našiel spôsob, ako obísť malloc a dvojitú bezplatnú ochranu na iniciovanie prenosu kontroly na kód, pomocou zraniteľnosti v OpenSSH 9.1, o ktorej sa zistilo, že má nízke riziko vytvorenia funkčného exploitu. Veľkou otázkou zároveň zostáva možnosť vytvorenia pracovného exploitu.

Zraniteľnosť je spôsobená dvojitým voľným predbežným overením. Na vytvorenie podmienok na prejavenie sa zraniteľnosti stačí zmeniť banner klienta SSH na „SSH-2.0-FuTTYSH_9.1p1“ (alebo iného starého klienta SSH), aby sa nastavili príznaky „SSH_BUG_CURVE25519PAD“ a „SSH_OLD_DHGEX“. Po nastavení týchto príznakov sa dvakrát uvoľní pamäť pre vyrovnávaciu pamäť „options.kex_algorithms“.

Výskumníkom z Qualys sa pri manipulácii so zraniteľnosťou podarilo získať kontrolu nad registrom procesora „%rip“, ktorý obsahuje ukazovateľ na ďalšiu inštrukciu, ktorá sa má vykonať. Vyvinutá technika využívania vám umožňuje preniesť kontrolu do akéhokoľvek bodu v adresnom priestore procesu sshd v neaktualizovanom prostredí OpenBSD 7.2, štandardne dodávanom s OpenSSH 9.1.

Je potrebné poznamenať, že navrhovaný prototyp je implementáciou iba prvej fázy útoku - na vytvorenie funkčného exploitu je potrebné obísť ochranné mechanizmy ASLR, NX a ROP a uniknúť izolácii sandboxu, čo je nepravdepodobné. Na vyriešenie problému obchádzania ASLR, NX a ROP je potrebné získať informácie o adresách, čo je možné dosiahnuť identifikáciou inej zraniteľnosti, ktorá vedie k úniku informácií. Chyba v privilegovanom rodičovskom procese alebo jadre môže pomôcť opustiť karanténu.

Zdroj: opennet.ru

Pridať komentár