Изменения в последнем выпуске компилятора GCC вместе с ошибкой в ядре привели к неприятной ситуации, которая может повлечь проблемы в безопасности. В этой версии GCC были изменены некоторые предположения о флагах процессора в x86 режиме для более точного соответствия стандарту ABI, что может привести к нарушению памяти программ, скомпилированных с помощью GCC 4.3.0. Ещё никому не удалось написать код способный использовать эту уязвимость, но, тем не менее, проблема требует внимания.
Проблема связана с флагом направления для x86 процессора (DF), который указывает на то, в каком порядке должны выполняться блочные операции в оперативной памяти. Основной способ использования этого флага - это поддержка перекрывающихся копий памяти в том случае, когда может потребоваться просмотр блоков памяти в обратную сторону с тем, чтобы копируемые данные оставались нетронутыми в процессе копирования. Разработчик из команды Debian осветил эту проблему в списке рассылки ядра Линукса 5 марта, когда была обнаружена ошибка сборки Steel Bank Common Lisp (SBCL) при помощи нового компилятора.
|