Вразливість у ядрі Linux, що дозволяє обійти sandbox-ізоляцію Chrome

Дослідники безпеки з Google виявили в ядрі Linux вразливість (CVE-2025-38236), що дозволяє підвищити свої привілеї в системі. Серед іншого вразливість дає можливість обійти механізм sandbox-ізоляції, що використовується в Google Chrome, і домогтися виконання коду на рівні ядра при виконанні коду в контексті ізольованого процесу рендерингу Chrome (наприклад, при експлуатації іншої вразливості Chrome). Проблема проявляється починаючи з ядра Linux 6.9 і усунена в оновленні ядра Linux 6.1.143, 6.6.96, 6.12.36 і 6.15.5. Для завантаження доступний прототип експлоїту.

Вразливість викликана помилкою у реалізації прапора MSG_OOB, який можна виставити для сокетів AF_UNIX. Прапор MSG_OOB («out-of-band») дозволяє прикріпити додатковий байт до даних, що відправляється, який одержувач може прочитати до отримання інших даних. Даний прапор був доданий в ядрі Linux 5.15 на запит Oracle і в минулому році пропонувався для переведення в розряд застарілих, що не отримав широкого поширення.

У реалізації sandbox-оточенні Chrome дозволені операції з UNIX-сокетами та системні виклики send()/recv(), в яких прапор MSG_OOB допускався поряд з іншими опціями та не був окремо відфільтрований. Помилка в реалізації MSG_OOB дозволяла домогтися звернення до пам'яті після звільнення (use-after-free) після виконання певної послідовності системних викликів: char dummy; int socks[2]; socketpair(AF_UNIX, SOCK_STREAM, 0, socks); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, 0); recv(socks[0], &dummy, 1, MSG_OOB);

Джерело: opennet.ru

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