Вразливості AppArmor у ядрі Linux: виявлення та рішення
Компанія Qualys виявила кілька вразливостей у коді AppArmor в ядрі Linux. Ці вразливості отримали назву CrackArmor, в той час як ідентифікатори CVE ще не були присвоєні. Всі вразливості вимагають доступу до системи з правами звичайного локального користувача. Вплив цих вразливостей варіюється від відмови в обслуговуванні до витоку інформації з пам’яті ядра, видалення засобів безпеки та локального підвищення привілеїв до користувача root. Випуски Ubuntu підлягають різному впливу, що детально розглянуто в відповідних розділах нижче.
Виправлення для ядра Linux для підтримуваних версій Ubuntu надаються в рамках оновлень безпеки командою Canonical Kernel Team. Крім того, наша команда безпеки надала рішення на рівні користувача у вигляді оновлень безпеки для всіх постраждалих версій Ubuntu. Наша рекомендація – застосувати як рішення на рівні користувача, так і оновлення безпеки для ядра Linux.
AppArmor є модулем контролю доступу з обов’язковими правами (MAC), який забезпечує додатковий рівень безпеки в системах Ubuntu і доповнює традиційну модель дискреційного контролю доступу (DAC). На додаток до того, що він ввімкнений за замовчуванням у випусках Ubuntu, AppArmor також використовується в інших дистрибутивах Linux.
Резюме вразливостей
Цей блог надає резюме про виявлені вразливості безпеки в коді AppArmor в ядрі Linux, а також у програмі sudo, а також небезпечну поведінку у програмі su, що сприяє експлуатації вразливостей ядра AppArmor. У наступній таблиці коротко представлені проблеми:
| Пакунок | Опис | ID CVE |
| linux | Всі вразливості AppArmor містяться в ядрі Linux. У розгортаннях хостів вони залежать від основної проблеми “заплутаного заступника” для експлуатації, яка є однією з вразливостей AppArmor.
Оновлення безпеки доступні для деяких постраждалих версій. |
Не призначено CVE. Вони відомі як CrackArmor. Відстежується як Launchpad Bug #2143853 |
| sudo sudo-ldap |
Утиліта sudo має вразливість, яка може призвести до підвищення привілеїв у сценаріях розгортання хостів у поєднанні з іншими вразливостями, описаними тут.
Оновлення безпеки доступні для всіх постраждалих версій. |
Не призначено CVE, відстежується як Launchpad Bug #2143042 |
| util-linux | Утиліта su в пакеті util-linux демонструє небезпечну поведінку, яка сприяє експлуатації вразливостей AppArmor у сценах розгортання хостів.
Оновлення безпеки, які посилюють утиліту su, доступні для всіх постраждалих версій. |
Це не вразливість, тому не отримає ідентифікатор CVE. Відстежується як Launchpad Bug #2143850 |
Стаття База знань про вразливості містить детальний опис вразливостей, а також заходи пом’якшення, надані через оновлення безпеки.
Сценарії впливу/оцінка
Розгортання без контейнерних навантажень
Експлуатація на хостах, які не виконують контейнерні навантаження, вимагає співпраці привілейованої програми (наприклад, двійника з правами setuid). Присутність системи оркестрації контейнерів без виконання контейнерів сама по собі не створює можливості для експлуатації. Команда Qualys визначила поведінку утиліти su як таку, що дозволяє експлуатацію. Вона може бути ініційована лише непривабливими користувачами, які мають встановлений пароль — звичайні системні користувачі не можуть успішно викликати su без доступу до пароля облікового запису і, отже, не можуть активувати вразливості. За відсутності такої співпрацюючої привілейованої програми вразливості можуть бути активовані лише привілейованим користувачем (root).
Незалежна вразливість була виявлена компанією Qualys у sudo, яку можна активувати через функцію сповіщень електронною поштою. Ця вразливість дозволяє локальне підвищення привілеїв, коли пов’язана з уразливостями AppArmor та привілейованою програмою su. sudo-rs, переписана на Rust версія sudo, доступна за замовчуванням в Ubuntu Questing Quokka (25.10) та пізніше, не підлягає впливу через дизайнерське рішення не надсилати сповіщення електронною поштою.
Команда безпеки Ubuntu підготувала оновлення безпеки для як su (в пакеті util-linux), так і sudo. Патч безпеки для su слід вважати заходом пом’якшення, і ми настійно рекомендуємо вам додатково застосувати оновлення безпеки для ядра Linux якомога швидше.
Контейнерні розгортання
У контейнерних розгортаннях, які можуть виконувати потенційно шкідливі образи контейнерів, вразливості ядра Linux AppArmor можуть бути використані без необхідності в співпрацюючій привілейованій програмі на рівні користувача. Це теоретично може призвести до сценаріїв втечі з контейнера, хоча на момент написання цього не було практично продемонстровано.
Команда безпеки Ubuntu настійно рекомендує застосувати оновлення безпеки для ядра Linux як єдине доступне усунення.
У наступних розділах пояснюється, як різні випуски Ubuntu зазнали впливу, а також відповідні виправлення чи пом’якшення.
Оновлення безпеки ядра Linux
Оновлення безпеки ядра Linux адресують всі вразливості AppArmor, виявлені компанією Qualys.
Всі підтримувані версії Ubuntu підлягають впливу від основної вразливості “заплутаного заступника”. Комбінації вразливостей, які дозволяють локальне підвищення привілеїв і сценарії втечі з контейнерів, не присутні в Trusty Tahr (14.04 LTS) або Xenial Xerus (16.04 LTS).
Як перевірити, чи ви підлягаєте впливу
На вашій системі виконайте таку команду, щоб дізнатися версію в даний момент працюючого ядра та порівняти зазначену версію з відповідною таблицею нижче.
uname -r
Список встановлених пакунків ядра можна отримати за допомогою такої команди:
dpkg -l 'linux-image*' | grep ^ii
Ви можете порівняти версію конкретного варіанту ядра, який ви встановили, зі списком зазначених версій, доступним у Базі знань про вразливості.
Як вирішити проблему
Ми рекомендуємо оновити всі пакети:
sudo apt update && sudo apt upgrade
Якщо це неможливо, оновлення ядра може бути націлене безпосередньо:
sudo apt updatedpkg-query -W -f '${source:Package}\t${binary:Package}\n' | awk '$1 ~ "^linux-meta" { print $2 }' | xargs sudo apt install --only-upgrade
Після встановлення оновлень безпеки для ядра Linux необхідно перезавантажити систему:
sudo reboot
Функція unattended-upgrades увімкнена за замовчуванням для Ubuntu Xenial Xerus (16.04 LTS) та пізніших версій. Ця служба:
- Автоматично застосовує нові оновлення безпеки щодня.
- Якщо у вас це увімкнено, вище зазначені патчі будуть автоматично застосовані протягом 24 годин з моменту їх доступності, але все ще потрібно буде перезавантаження.
Оновлення безпеки sudo
Оновлення безпеки пакету sudo адресують несуміжну вразливість sudo, яка може бути об’єднана з уразливістю AppArmor для полегшення локального підвищення привілеїв.
Як перевірити, чи ви підлягаєте впливу
Щоб дізнатися версію встановленого пакету sudo, виконайте таку команду:
dpkg -l 'sudo*' | grep ^ii
Наступна таблиця містить інформацію про виправлені версії пакета sudo у всіх підтримуваних версіях Ubuntu:
| Випуск | Пакунок | Виправлена версія |
| Questing Quokka (25.10) | sudo | 1.9.17p2-1ubuntu1.1 |
| sudo-ldap | 1.9.17p2-1ubuntu1.1 | |
| sudo-rs | Не підлягає впливу | |
| Noble Numbat (24.04 LTS) | sudo | 1.9.15p5-3ubuntu5.24.04.2 |
| sudo-ldap | 1.9.15p5-3ubuntu5.24.04.2 | |
| Jammy Jellyfish (22.04 LTS) | sudo | 1.9.9-1ubuntu2.6 |
| sudo-ldap | 1.9.9-1ubuntu2.6 | |
| Focal Fossa (20.04 LTS) | sudo | Не підлягає впливу |
| sudo-ldap | Не підлягає впливу | |
| Bionic Beaver (18.04 LTS) | sudo | Не підлягає впливу |
| sudo-ldap | Не підлягає впливу | |
| Xenial Xerus (16.05 LTS) | sudo | Не підлягає впливу |
| sudo-ldap | Не підлягає впливу | |
| Trusty Tahr (14.04 LTS) | sudo | Не підлягає впливу |
| sudo-ldap | Не підлягає впливу |
Як вирішити проблему
Ми рекомендуємо оновити всі пакети:
sudo apt update && sudo apt upgrade
Якщо це неможливо, можна безпосередньо встановити пом’якшення для sudo, які не вимагають перезавантаження:
sudo apt updatesudo apt install sudo
Функція unattended-upgrades увімкнена за замовчуванням для Ubuntu Xenial Xerus (16.04 LTS) та пізніших версій. Ця служба:
- Автоматично застосовує нові оновлення безпеки щодня.
- Якщо у вас це увімкнено, патчі вище будуть автоматично застосовані протягом 24 годин з моменту їх доступності.
Оновлення безпеки util-linux
Оновлення безпеки пакету util-linux посилюють утиліту su, щоб уникнути використання її для експлуатації вразливостей AppArmor.
Як перевірити, чи ви підлягаєте впливу
Щоб дізнатися версію встановленого пакету util-linux, виконайте таку команду:
dpkg -l util-linux
Наступна таблиця містить інформацію про виправлені версії пакета util-linux у всіх підтримуваних версіях Ubuntu:
| Випуск | Пакунок | Виправлена версія |
| Questing Quokka (25.10) | util-linux | 2.41-4ubuntu4.2 |
| Noble Numbat (24.04 LTS) | util-linux | 2.39.3-9ubuntu6.5 |
| Jammy Jellyfish (22.04 LTS) | util-linux | 2.37.2-4ubuntu3.5 |
| Focal Fossa (20.04 LTS) | util-linux | 2.34-0.1ubuntu9.6+esm1 |
| Bionic Beaver (18.04 LTS) | util-linux | Не підлягає впливу |
| Xenial Xerus (16.05 LTS) | util-linux | Не підлягає впливу |
| Trusty Tahr (14.04 LTS) | util-linux | Не підлягає впливу |
Як вирішити проблему
Ми рекомендуємо оновити всі пакети:
sudo apt update && sudo apt upgrade
Якщо це неможливо, можна безпосередньо встановити пом’якшення для util-linux, які не вимагають перезавантаження:
sudo apt updatesudo apt install util-linux
Функція unattended-upgrades увімкнена за замовчуванням для Ubuntu Xenial Xerus (16.04 LTS) та пізніших версій. Ця служба:
- Автоматично застосовує нові оновлення безпеки щодня.
- Якщо у вас це увімкнено, вище зазначені патчі будуть автоматично застосовані протягом 24 годин з моменту їх доступності.
Подяки
Ми хочемо подякувати компанії Qualys за відмінне звітування та за співпрацю з командою AppArmor, командою Canonical Kernel Team, командою безпеки Ubuntu, командою безпеки ядра Linux та іншими дистрибутивами Linux у координованому розкритті вразливостей.