У ядрі Linux виявлено експлуатовані вразливості в nf_tables, watch_queue та IPsec

У ядрі Linux виявлено кілька небезпечних уразливостей, що дозволяють локальному користувачеві підвищити свої привілеї у системі. Для всіх цих проблем підготовлені робочі прототипи експлоїтів.

  • Вразливість (CVE-2022-0995) у підсистемі відстеження подій watch_queue, що призводить до запису даних в області пам'яті ядра поза виділеним буфером. Атака може бути здійснена будь-яким непривілейованим користувачем та призвести до запуску свого коду з правами ядра. Вразливість присутня у функції watch_queue_set_size() і пов'язана зі спробою очищення всіх покажчиків у списку, навіть якщо для них не було виділено пам'ять. Проблема проявляється при складанні ядра з опцією CONFIG_WATCH_QUEUE=y, яка використовується в більшості дистрибутивів Linux.

    Уразливість усунена у зміні, доданій у ядро ​​11 березня. Простежити за публікаціями оновлення пакетів у дистрибутивах можна на цих сторінках: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Прототип експлоїту вже доступний публічно і дозволяє отримати root-доступ при запуску Ubuntu 21.10 з ядром 5.13.0-37.

    У ядрі Linux виявлено експлуатовані вразливості в nf_tables, watch_queue та IPsec

  • Вразливість (CVE-2022-27666) у модулях ядра esp4 та esp6 з реалізацією ESP-перетворень (Encapsulating Security Payload) для IPsec, які застосовуються при використанні IPv4 та IPv6. Вразливість дозволяє локальному користувачеві зі звичайними привілеями перезаписати об'єкти в пам'яті ядра та підвищити свої привілеї у системі. Проблема викликана відсутністю звіряння виділеного розміру пам'яті та фактично отриманих даних при тому, що максимальний розмір повідомлення міг перевищувати максимальний розмір пам'яті, що виділяється структури skb_page_frag_refill.

    Уразливість усунена в ядрі 7 березня (виправлена ​​в 5.17, 5.16.15 тощо). Простежити за публікаціями оновлення пакетів у дистрибутивах можна на цих сторінках: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Робочий прототип експлоїту, що дозволяє звичайному користувачеві отримати root-доступ в Ubuntu Desktop 21.10 у стандартній конфігурації, вже розміщений на GitHub. Стверджується, що при незначних змінах експлоїт також буде працездатним у Fedora та Debian. Примітно, що експлоїт спочатку був підготовлений для змагань pwn2own 2022, але розробники ядра виявили та виправили пов'язану з ним помилку, тому вирішили розкрити деталі вразливості.

  • Дві вразливості (CVE-2022-1015, CVE-2022-1016) у підсистемі netfilter у модулі nf_tables, що забезпечує роботу пакетного фільтра nftables. Перша проблема дозволяє локальному непривілейованому користувачеві досягти запису за межі виділеного буфера в стеку. Переповнення виникає при обробці певним чином оформлених виразів nftables, що обробляються на етапі перевірки індексів, заданих користувачем, що має доступ до правил nftables.

    Вразливість викликана тим, що розробники мали на увазі, що значення "enum nft_registers reg" є одним байтом, у той час як при включенні певних оптимізації компілятор відповідно до специфікації C89 може використовувати для нього 32-розрядне значення. Через зазначену особливість використовуваний при перевірці та виділенні пам'яті розмір не відповідає фактичному розміру даних у структурі, що призводить до накладання хвоста структури на покажчики в стеку.

    Проблема може бути експлуатована для виконання свого коду на рівні ядра, але для успішної атаки потрібна наявність доступу до nftables, який можна отримати в окремому просторі імен (network namespaces) за наявності прав CLONE_NEWUSER або CLONE_NEWNET (наприклад, при можливості запуску ізольованого контейнера). Вразливість також тісно пов'язана з оптимізаціями, що застосовуються компілятором, які, наприклад, включаються при складанні в режимі «CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y». Експлуатація вразливості можлива з ядра Linux 5.12.

    Друга вразливість у netfilter викликана зверненням до вже звільненої області пам'яті (use-after-free) в обробнику nft_do_chain і може призвести до витоку неініціалізованих областей пам'яті ядра, які можна прочитати через маніпуляції з виразами nftables і використовувати, наприклад, для визначення експлоїтів для інших уразливостей. Експлуатація вразливості можлива з ядра Linux 5.13.

    Уразливості усунуті у сьогоднішніх коригувальних оновленнях ядра 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 та 4.9.309. Простежити за публікаціями оновлення пакетів у дистрибутивах можна на цих сторінках: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Дослідник, що виявив проблеми, заявив про підготовку робочих експлоїтів для обох вразливостей, які планується опублікувати через кілька днів, після того як дистрибутиви випустять оновлення пакетів з ядром.

Джерело: opennet.ru

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