Уразливість sudo: непривілейовані користувачі отримують root-доступ

Уразливість у sudo: як непривілейований користувач може отримати root-доступ

У пакеті sudo, що використовується для виконання команд від імені інших користувачів, виявлено уразливість (CVE-2025-32463). Ця вада дозволяє будь-якому непривілейованому користувачу виконати код з правами root, навіть якщо користувач не згаданий у конфігурації sudoers.

Проблема вражає дистрибутиви, що використовують файл конфігурації /etc/nsswitch.conf. Можливість експлуатації вже продемонстровано в Ubuntu 24.04 та Fedora 41.

Які версії sudo вразливі?

Уразливість проявляється в конфігурації за замовчуванням і підтверджена у версіях sudo з 1.9.14 по 1.9.17. Потенційно вразливими є всі версії, починаючи з 1.8.33. Проблему усунуто в оновленні sudo 1.9.17p1.

Технічні деталі уразливості

Проблема виникає при застосуванні опції “-R” (“–chroot”) для запуску команд у chroot-середовищі. Файл /etc/nsswitch.conf завантажується в контексті нового кореневого каталогу, а не системного.

Оскільки користувач може використовувати власний каталог як кореневий для chroot, він може розмістити там власний файл конфігурації nsswitch.conf. Цей файл дозволяє додати налаштування, що призводять до виклику додаткових обробників.

Такі обробники завантажуються підсистемою NSS у формі бібліотек, які користувач також може розмістити у своєму каталозі. Це дає змогу виконати код з правами root, оскільки обробка NSS відбувається до скидання привілеїв.

Ще одна уразливість у sudo

У версії sudo 1.9.17p1 також виправлено іншу уразливість (CVE-2025-32462), яка дозволяє виконати команди з правами root. Вона проявляється лише в конфігураціях sudoers, де параметр “host” налаштований на значення, відмінне від ALL або імені поточного хосту.

Ця вада виникла через помилку, через яку опція “-h” (“–host”) діяла не тільки при виведенні привілеїв, прив’язаних до хосту, але й при запуску команд. Таким чином користувач міг вказати будь-який хост при виклику sudo і обійти обмеження правил sudoers.

Для здійснення атаки користувач повинен згадуватися в sudoers. Наприклад, якщо в налаштуваннях вказано “testuser testhost = ALL”, то користувач “testuser” міг вказати “sudo -h testhost” і запустити команди з правами root на будь-яких хостах.

Як перевірити та оновити sudo

Рекомендується якомога швидше оновити sudo до версії 1.9.17p1. Перевірити стан нової версії пакета або підготовку виправлення в дистрибутивах можна на офіційних сторінках підтримки відповідних проектів.

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

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