В утиліті e2fsck, що постачається у складі пакета
Уразливість викликана помилкою в функція 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