Вразливість, що дозволяє вийти із ізольованого оточення QEMU

Розкрито деталі критичної вразливості (CVE-2019-14378) в обробнику SLIRP, що за замовчуванням застосовується в QEMU для організації каналу зв'язку між віртуальним мережним адаптером у гостьовій системі та мережевим бекендом на стороні QEMU. Проблема також торкається системи віртуалізації на базі KVM (у режимі Usermode) і Virtualbox, в яких використовуються бекенд slirp з QEMU, а також програми, що застосовують мережевий стек у просторі користувача libSLIRP (Емулятор TCP/IP).

Вразливість дозволяє досягти виконання коду на стороні хост-системи з правами процесу-обробника QEMU під час відправлення з боку гостьової системи спеціально оформленого дуже великого мережевого пакета, для якого потрібне проведення фрагментації. Через помилку функції ip_reass(), що викликається при пересборі вхідних пакетів, перший фрагмент може не уміститися у виділений буфер і його хвіст буде записаний в наступні за буфером області пам'яті.

Для тестування вже доступний робочий прототип експлоїту, в якому передбачено обхід ASLR та виконання коду через перезапис пам'яті масиву main_loop_tlg, що включає список QEMUTimerList з обробниками, що викликаються за таймером.
Вразливість вже усунена в Fedora и SUSE/openSUSE, але залишається невиправленою в Debian, Arch Linux и FreeBSD. У Ubuntu и RHEL проблема не проявляється через невикористання slirp. Вразливість залишається невиправленою в останньому випуску libslirp 4.0 (виправлення поки що доступне у вигляді патча).

Джерело: opennet.ru

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