Уязвимость вызвана некорректным поведением двух специфичных для XFS ioctl(XFS_IOC_ALLOCSP) и ioctl(XFS_IOC_FREESP), которые являются функциональным аналогом общеядерного системного вызова fallocate(). При увеличении размера файла, не выровненного на размер блока, ioctl XFS_IOC_ALLOCSP/XFS_IOC_FREESP не обнуляют хвостовые байты до следующей границы блока. Таким образом, на XFS со стандартным размером блока 4096 байт из каждого блока атакующий может прочитать 4095 байт предыдущих записанных данных. В указанных областях могут содержаться данные удалённых файлов дефрагментированных файлов, а также данные файлов с дедуплицированными блоками.
Проверить свою систему на наличие проблемы можно с помощью простого прототипа эксплоита. Если после выполнения предложенной последовательности команд удастся прочиласть текст Шекспира, то драйвер ФС уязвим. Изначальное монтирование раздела XFS для демонстрации требует прав суперпользователя.
Поскольку ioctl(XFS_IOC_ALLOCSP) и ioctl(XFS_IOC_FREESP) по функциональности практически не отличаются от стандартного fallocate(), и единственным их отличием является утечка данных, их наличие похоже на бекдор. Не смотря на общую политику не изменять существующие интерфейсы в ядре, по предложению Линуса принято решение полностью удалить эти ioctl’ы в следующей версии.
Источник: http://www.opennet.ru/opennews/art.shtml?num=56508