Прагрэс у стварэнні эксплоіту для OpenSSH 9.1

Кампанія Qualys знайшла спосаб абыйсці абарону malloc і double-free для ініцыявання перадачы кіравання коду, выкарыстоўваючы ўразлівасць у OpenSSH 9.1, рызыка стварэння працоўнага эксплоіту для якой быў вызначаны як малаверагодны. Пры гэтым магчымасць стварэння працуючага эксплоіту пакуль застаецца пад вялікім пытаннем.

Уразлівасць выклікана падвойным вызваленнем вобласці памяці на стадыі да праходжання аўтэнтыфікацыі. Для стварэння ўмоў праявы ўразлівасці досыць змяніць банэр SSH-кліента на "SSH-2.0-FuTTYSH_9.1p1" (або іншы стары SSH-кліент) для таго, каб дамагчыся выстаўленні сцягоў "SSH_BUG_CURVE25519PAD" і "SSH_OLD_DHGEX". Пасля выстаўлення гэтых сцягоў памяць пад буфер "options.kex_algorithms" вызваляецца два разы.

Даследнікі з Qualys падчас маніпуляцый з уразлівасцю змаглі дамагчыся кантролю над рэгістрам працэсара "%rip", утрымоўвальным паказальнік на наступную інструкцыю для выканання. Распрацаваная тэхніка эксплуатацыі дазваляе перадаць кіраванне ў любую кропку адраснай прасторы працэсу sshd у неабноўленым асяроддзі OpenBSD 7.2, па змаўчанні які пастаўляецца з OpenSSH 9.1.

Адзначаецца, што прапанаваны прататып з'яўляецца рэалізацыяй толькі першай стадыі нападу – для стварэння працавальнага эксплоіта неабходна абыйсці механізмы абароны ASLR, NX і ROP, і выйсці з sandbox-ізаляцыі, што малаверагодна. Для рашэння задачы абыходу ASLR, NX і ROP патрабуецца атрымаць інфармацыі аб адрасах, чаго можна дамагчыся выявіўшы яшчэ адну ўразлівасць, якая прыводзіць да ўцечкі інфармацыі. Для выйсця з sandbox можа дапамагчы памылка ў прывілеяваным бацькоўскім працэсе ці ядры.

Крыніца: opennet.ru

Дадаць каментар