В 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-приложения научились обходить блокировку трафика вне VPN

Исследователь Армин Шупук обнаружил в Android механизм, позволяющий обычному приложению отправлять пакеты мимо VPN даже при включённой функции «Блокировать соединения без VPN». Никакого root-доступа, ADB и опасных разрешений не требуется — достаточно штатного системного API.

Проблема связана с NAT-T keepalive — короткими пакетами UDP/4500, которые поддерживают сетевое соединение активным. Android может поручить их отправку чипу Wi-Fi, минуя обычный сетевой путь приложения и проверки VPN Lockdown.

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

Однако получатель видит реальный IP-адрес устройства, время отправки и факт его присутствия в сети. Этого достаточно для определения провайдера, сопоставления активности и отслеживания перемещений между сетями.

Исследователь подтвердил утечку на Pixel 8 Pro с Android 16: роутер фиксировал пакет вне VPN каждые десять секунд. На смартфоне Samsung соединение оставалось активным более 24 часов. Работа механизма также подтверждена на устройстве Nothing, хотя отдельный перехват трафика для него не проводился.

По оценке автора, проблема затрагивает большинство устройств на Android 12 и новее, поддерживающих аппаратную отправку NAT-T keepalive через Wi-Fi. Однако полноценные испытания выполнены только на трёх моделях, поэтому речь идёт об оценке класса устройств, а не о проверке каждого смартфона на рынке.

Отчёт передали Google 15 мая 2026 года. Корпорация признала его дубликатом уже зарегистрированной проблемы, но сведения о CVE, исправлении или сроках выпуска патча публично не раскрыты.

До устранения ошибки пользователям с повышенными требованиями к анонимности рекомендуют пропускать весь трафик смартфона через внешний VPN-маршрутизатор, отключив мобильную сеть и альтернативные подключения.

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