+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Спеціаліст Apple виявив вразливість (CVE-2019-14287) у команді sudo у Linux

Спеціаліст Apple виявив вразливість (CVE-2019-14287) у команді sudo в Linux

Фахівець компанії Apple Джо Веннікс (Joe Vennix) виявив вразливість (CVE-2019-14287) у команді sudo в Linux, що дозволяє непривілейованим користувачам запускати команди з правами суперкористувача. На щастя, проблема виникає лише при нестандартних налаштуваннях конфігурації і не торкається більшості Linux-серверів.

Команда sudo (super user do) дозволяє непривілейованим користувачам, яким було надано відповідний дозвіл або відомий пароль суперкористувача, виконувати на Linux-машинах команди з правами суперкористувача. Sudo можна також налаштувати для запуску команд від імені іншого користувача (за винятком суперкористувача) шляхом додавання особливих інструкцій до конфігураційного файлу /etc/sudoers.

Уразливість виникає якраз при налаштування конфігурації sudo, що дозволяють користувачам запускати команди від імені інших користувачів. Додавши до командного рядка -u#-1, вони можуть обійти обмеження та запускати команди з привілеями суперкористувача.

Припустимо, адміністратор створив на сервері mybox користувача sudo з ім'ям bob, додавши до конфігураційного файлу рядок mybox bob = (ALL, !root) /usr/bin/vi. По ідеї, це дасть користувачеві bob можливість запускати текстовий редактор Vi з привілеями будь-якого користувача за винятком суперкористувача. Однак якщо bob запустить команду sudo -u#-1 vi, то зможе запускати Vi з привілеями суперкористувача.

Чому так відбувається? Скажімо, -u#1234 може використовуватися в командному рядку з sudo для запуску команд, в даному випадку Vi як ідентифікатор (ID) користувача 1234. Sudo передає це значення ідентифікатора через системні виклики setresuid та setreuid для зміни ефективного ID користувача команди.

У результаті -u#-1 передає через виклики -1 для зміни ефективного ідентифікатора на -1. Системний виклик приймає цей ID як особливий і не змінює ідентифікатор користувача. Оскільки sudo спочатку має права суперкористувача, -1 продовжує працювати як суперкористувач. Цікаво, що ідентифікатор користувача 4294967295 також здатний обходити обмеження, оскільки, будучи підписаною 32-розрядною цілою змінною, він дорівнює -1.

Щоб уникнути можливих атак з використанням даної вразливості користувачам настійно рекомендується оновити sudo до версії 1.8.28 або пізнішої. В оновленій версії sudo -1 більше не приймається як ідентифікатор користувача, тому неможлива експлуатація вразливості.

Інші новини

Найкраща ціна