Прогрес у створенні експлоїту для 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

Додати коментар або відгук