В LLVM/Clang добавлена техника защиты стека SafeStack

В LLVM/Clang добавлена техника защиты стека SafeStack

В компилятор Clang добавлен код подсистемы SafeStack, предназначенной для защиты от типовых ошибок, вызванных повреждением памяти в результате работы со стеком и являющихся причиной большого числа эксплуатируемых уязвимостей (например, в 2014 году в Firefox было выявлено 55 подобных уязвимостей).

SafeStack позволяет предотвратить получение контроля над помещёнными в стек указателями в программах на C/C++ через сохранение указателей (адреса возврата, указатели на функции и т.п.) в отдельной изолированной области памяти, доступ к которой производится только с использованием специальных проверок корректности обращения к памяти. Таким образом, стек приложения разделяется на две части - защищённый стек для хранения указателей, адресов из регистров и локальных переменных, и незащищённый стек, в котором сохраняется всё остальное. В защищённый стек данные добавляются только после статической проверки и доступ к ним ограничен, что существенно усложняет организацию получения контроля над выполнением кода в результате совершения атак, пишет opennet.ru.

Накладные расходы от реализуемых в SafeStack дополнительных проверок несущественны и составляют 0.01-0.05%, что существенно меньше, чем при использовании методов на основе добавления меток в стек (stack cookies). Более того, в некоторых случаях наблюдается даже ускорение работы программы за счёт более эффективного использования кэша. Метод защиты отмечен как стабильный и уже опробованный при сборке Chromium, базовой системы FreeBSD и более 100 пакетов. Для включения SafeStack в clang добавлены новые опции "-fsafe-stack" и "-fno-safe-stack" (по умолчанию новый режим отключен), для отключения режима для отдельных функций реализован атрибут no_safe_stack. 

Подпишитесь на новости

Невидимое СМС смерти обрывает звонки на Android, даже в экстренные службы

Для сбоя Android иногда достаточно сообщения, которое пользователь даже не увидит. Исследователь Марк Блащик показал атаку через специально сформированное СМС: оно аварийно завершает телефонную службу и обрывает текущий звонок, включая вызов экстренных служб. Открывать сообщение или нажимать ссылку не требуется.

Подробности исследователь опубликовал на отдельном сайте проекта SMS of Death.

Проблема находится в обработчике служебных WAP пуш-сообщений. Некорректные данные вызывают необработанное исключение, после чего телефонная служба перезапускается. В обычной переписке такое СМС не появляется, искать подозрительную ссылку тут бесполезно.

По результатам тестов автора, серия примерно из 20 сообщений способна надолго сделать устройство непригодным для использования. Ситуацию усугубляет повторная доставка: оператор снова отправляет неподтверждённое сообщение, а смартфон снова падает. В отдельных случаях возникает цикл перезагрузок, для выхода из которого нужен компьютер.

Исследователь воспроизвёл сбой на Pixel и Samsung Galaxy. По его данным, патч вошёл в октябрьский набор 2026 года для версий 14-17. Старые устройства, оставшиеся без поддержки, могут его не получить.

RSS: Новости на портале Anti-Malware.ru