Вони знайшли вразливість VFS у Linux, яка дозволяє підвищувати привілеї

Кілька днів тому була опублікована новина про те, що вразливість виявлена (уже занесено в каталог CVE-2022-0185) іn API контексту файлової системи надається ядро Linux що може дозволити локальному користувачеві отримати root-права в системі.

Згадується, що проблема в тому, що користувач без привілеїв може отримати такі дозволи в ізольованому контейнері якщо в системі ввімкнено підтримку просторів імен користувачів.

Наприклад, простори імен користувачів увімкнені за замовчуванням в Ubuntu та Fedora, але не ввімкнені в Debian та RHEL (якщо не використовуються платформи ізоляції контейнерів). На додаток до підвищення привілеїв, уразливість також може бути використана для виходу із ізольованого контейнера, якщо контейнер має повноваження CAP_SYS_ADMIN.

Вразливість існує у функції legacy_parse_param() у VFS і через відсутність належної перевірки максимального розміру наданих параметрів у файлових системах, які не підтримують API контексту файлової системи.

Нещодавно ми з кількома друзями з моєї команди CTF Crusaders of Rust зіткнулися з 0-денним переповненням купи ядра Linux. Ми знайшли помилку через fuzzing за допомогою syzkaller і швидко перетворили її в експлойт Ubuntu LPE. Потім ми переписали його, щоб уникнути та отримати root-права для загартованої інфраструктури Kubernetes CTF від Google. Ця помилка впливає на всі версії ядра, починаючи з версії 5.1 (5.16 наразі триває), і їй було призначено CVE-2022-0185. Ми вже повідомляли про це дистрибутиву Linux та списку розсилки безпеки, і помилку було виправлено після випуску цієї статті.

Передача занадто великого параметра може призвести до переповнення цілочисельної змінної, яка використовується для обчислення розміру записуваних даних; код має перевірку переповнення буфера "if (len > PAGE_SIZE - 2 - size)", яка не працює, якщо значення розміру більше 4094 через переповнення цілого числа через нижню межу (переповнення цілого числа, коли перетворюється 4096 – 2 – 4095 до беззнакового int, отримує 2147483648).

Ця помилка дозволяє при доступі до спеціально створеного зображення FS, викликають переповнення буфера та перезаписують дані ядра після виділеної області пам'яті. Для використання уразливості потрібні права CAP_SYS_ADMIN, тобто права адміністратора.

Станом на 2022 рік наші товариші по команді вирішили знайти день 0 у 2022 році. Ми не були точно впевнені, з чого почати, але оскільки наша команда була добре обізнана з уразливими місцями ядра Linux, ми вирішили просто купити кілька виділених серверів. і запустіть syzkaller fuzzer від Google. 6 січня о 22:30 за тихоокеанським стандартним часом chop0 отримав таке повідомлення про збій KASAN у legacy_parse_param: slab-of-of-bounds Записати в legacy_parse_param. Схоже, що syzbot виявив цю проблему лише 6 днів тому під час fuzzing Android, але проблема не була вирішена, і ми наївно думали, що ніхто інший не помітив.

Наостанок варто зазначити, що проблема проявляється з версії ядра Linux 5.1 і була вирішена в оновленнях, які були випущені кілька днів тому у версіях 5.16.2, 5.15.16, 5.10.93, 5.4.173.

Крім того Оновлення пакета вразливостей вже випущено пункт RHELDebianfedora і Ubuntu. Поки рішення ще недоступне на Arch LinuxGentooSUSE y openSUSE.

У цьому випадку згадується, що як рішення безпеки для систем, які не використовують ізоляцію контейнера, ви можете встановити значення sysctl "user.max_user_namespaces" на 0:

Дослідник, який виявив проблему, опублікував демонстрація експлойту que дозволяє запускати код як root в Ubuntu 20.04 у конфігурації за замовчуванням. Планується, що код експлойта публікується на GitHub протягом тижня після цього що дистрибутиви випускають оновлення, яке усуває вразливість.

В кінці кінців якщо вам цікаво дізнатись більше про це, ви можете перевірити деталі в наступне посилання.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   галицька - сказав він

    Ще одна причина не торкатися паличкою.