Вразливість у e2fsck, що виявляється при обробці спеціально оформлених каталогів

В утиліті e2fsck, що постачається у складі пакета e2fsprogs, виявлено вразливість (CVE-2019-5188), що дозволяє домогтися виконання коду зловмисника під час перевірки файлової системи, що містить спеціальним чином оформлені каталоги. Наявність уразливості підтверджено у випусках з 1.43.3 до 1.45.4. Уразливість усунена в оновленні e2fsck 1.45.5. У дистрибутивах проблема поки що залишається невиправленою (Debian, Arch Linux, SUSE/openSUSE, Ubuntu, RHEL).

Уразливість викликана помилкою в функція mutate_name() з файлу rehash.c, що застосовується при перебудові пов'язаних з каталогом хеш-таблиць, що забезпечують зіставлення з каталогом всіх файлів, що знаходяться в ньому. Пошкодження пов'язаної з каталогом структури hash_entry може призвести до запису даних, що атакує в область поза виділеним буфером. У разі виявлення в хеш-таблиці прив'язки до каталогу декількох файлів з однаковим ім'ям, утиліта e2fsck перейменовує файли, що повторюються, з додаванням до імені ~0, ~1 і т.п. Для тимчасового зберігання нового імені при такому перейменуванні в стеку виділяється буфер розміром 256 байт.

Розмір даних, що копіюються, визначається виразом «entry->name_len & 0xff», але значення entry->name_len завантажується зі структури на диску, а не обчислюється на основі фактичного розміру імені. Якщо розмір дорівнює нулю, то індекс масиву набуває значення -1 і створюються умови для цілісного переповнення через нижню межу буфера (integer underflow) та перезапису інших даних у стеку значенням "~0". Для 64-розрядних систем експлуатація вразливості оцінюється як малоймовірна та потребує відсутності обмежень на розмір стеку (ulimit-s unlimited). Для 32-розрядних систем експлуатація вважається можливою, але результат залежить від того, як був зібраний виконуваний файл компілятором.

Для здійснення атаки зловмиснику необхідно певним чином пошкодити дані у розділі з ФС ext2, ext3 чи ext4. Так як дана операція вимагає наявності привілеїв суперкористувача, уразливість становить загрозу під час перевірки утилітою e2fsck зовнішніх накопичувачів або отриманих ззовні образів ФС.

Джерело: opennet.ru

Додати коментар або відгук