Pokrok ve vytváření exploitu pro OpenSSH 9.1

Qualys našel způsob, jak obejít malloc a double-free ochranu a zahájit přenos kontroly do kódu, pomocí zranitelnosti v OpenSSH 9.1, u které bylo zjištěno nízké riziko vytvoření funkčního exploitu. Velkou otázkou přitom zůstává možnost vytvoření pracovního exploitu.

Tato chyba zabezpečení je způsobena dvojitým předběžnou autentizací. K vytvoření podmínek pro manifestaci zranitelnosti stačí změnit banner klienta SSH na „SSH-2.0-FuTTYSH_9.1p1“ (nebo jiný starý klient SSH), aby se nastavily příznaky „SSH_BUG_CURVE25519PAD“ a „SSH_OLD_DHGEX“. Po nastavení těchto příznaků se paměť pro vyrovnávací paměť „options.kex_algorithms“ dvakrát uvolní.

Výzkumníkům z Qualys se při manipulaci se zranitelností podařilo získat kontrolu nad registrem procesoru „%rip“, který obsahuje ukazatel na další instrukci, která má být provedena. Vyvinutá technika využívání vám umožňuje přenést řízení do libovolného bodu v adresovém prostoru procesu sshd v neaktualizovaném prostředí OpenBSD 7.2, které je standardně dodáváno s OpenSSH 9.1.

Je třeba poznamenat, že navrhovaný prototyp je implementací pouze první fáze útoku - pro vytvoření funkčního exploitu je nutné obejít ochranné mechanismy ASLR, NX a ROP a uniknout izolaci sandboxu, což je nepravděpodobné. Pro vyřešení problému obcházení ASLR, NX a ROP je nutné získat informace o adresách, čehož lze dosáhnout identifikací další zranitelnosti, která vede k úniku informací. Chyba v privilegovaném rodičovském procesu nebo jádře může pomoci opustit sandbox.

Zdroj: opennet.ru

Přidat komentář