У Snap було знайдено дві вразливості, які дозволили запускати код як root

Представлено Qualys новини, які я ідентифікую дві вразливості (CVE-2021-44731 і CVE-2021-44730) в утиліті snap-confine, надсилається з кореневим прапором SUID і викликається процесом snapd для створення виконуваного середовища для програм, що розповсюджуються в пакетах snap.

У дописі блогу про це йдеться вразливості дозволяють непривілейованому локальному користувачеві виконувати код як root в системі.

Перша вразливість дозволяє атакувати фізичне маніпулювання посиланням, але вимагає вимкнення захисту системних жорстких посилань (за допомогою установки sysctl fs.protected_hardlinks на 0).

Проблема це через неправильну перевірку розташування виконуваних файлів утиліт snap-update-ns і snap-discard-ns які запускаються як root. Шлях до цих файлів був розрахований у функції sc_open_snapd_tool() на основі її власного шляху з /proc/self/exe, що дозволило вам створити жорстке посилання для обмеження у вашому каталозі та встановити параметри snap-update-ns і snap -discard-ns у цьому каталозі. При запуску з жорсткого посилання snap-confine як root виконає замінені зловмисником файли snap-update-ns і snap-discard-ns з поточного каталогу.

Успішне використання цієї вразливості дозволяє будь-якому непривілейованому користувачеві отримати привілеї root на вразливому хості. Дослідники з безпеки Qualys змогли незалежно перевірити вразливість, розробити експлойт і отримати повні права root на стандартних установках Ubuntu.

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

Друга вразливість викликана станом раси і може використовуватися в конфігурації робочого столу Ubuntu за замовчуванням. Щоб експлойт успішно працював на сервері Ubuntu, під час встановлення необхідно вибрати один із пакетів у розділі «Вибрані знімки сервера».

расовий стан проявляється у функції setup_private_mount(). викликається під час підготовки простору імен точки монтування для миттєвого пакета. Ця функція створює тимчасовий каталог "/tmp/snap.$SNAP_NAME/tmp" або використовує наявний для зв'язування та монтування до нього каталогів для пакета прив'язки.

Оскільки ім’я тимчасового каталогу є передбачуваним, зловмисник може змінити його вміст на символічне посилання після перевірки власника, але перед викликом системи монтування. Наприклад, ви можете створити символічне посилання "/tmp/snap.lxd/tmp" у каталозі /tmp/snap.lxd, яке вказує на довільний каталог, і виклик mount() буде слідувати за символічним посиланням і змонтувати каталог у просторі імен.

Аналогічно, ви можете змонтувати його вміст у /var/lib і, перевизначивши /var/lib/snapd/mount/snap.snap-store.user-fstab, організувати монтування вашого каталогу /etc у прив'язку простору імен пакета, щоб завантажити вашу бібліотеку з root-доступу, замінивши /etc/ld.so.preload.

Помічено, що створення експлойту виявилося нетривіальним завданням, оскільки утиліта snap-confine написана за допомогою методів безпечного програмування (snapd написана на Go, але C використовується для snap-confine), має захист на основі профілів AppArmor, фільтрує системні виклики на основі механізму seccomp і використовує простір імен монтування для ізоляції.

Однак дослідникам вдалося підготувати функціональний експлойт щоб отримати root-доступ до системи. Код експлойту буде випущено через кілька тижнів після того, як користувачі встановлять надані оновлення.

Нарешті, варто згадати про цеПроблеми вирішено в оновленні пакета snapd для Ubuntu версій 21.10, 20.04 і 18.04.

На додаток до інших дистрибутивів, які використовують Snap, випущено Snapd 2.54.3, який, окрім перерахованих вище проблем, виправляє ще одну вразливість (CVE-2021-4120), що дозволяє при інсталяції спеціально розроблених пакетів плагінів замінити довільні правила AppArmor і обійти обмеження доступу, встановлені для пакета.

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


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

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

*

*

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