Новая дыра в macOS: libAppleArchive позволяет обойти Gatekeeper

Новая дыра в macOS: libAppleArchive позволяет обойти Gatekeeper

Новая дыра в macOS: libAppleArchive позволяет обойти Gatekeeper

Apple снова попала в новости из-за уязвимости — на этот раз в своей библиотеке libAppleArchive, которая используется для работы с архивами .aar. Исследователь Снулли Кеффабер нашёл критическую брешь (CVE-2024-27876, CVSS 8.1), позволяющую не только записывать файлы в произвольные места на диске, но и обходить защиту Gatekeeper.

Всё началось с того, что Кеффабер написал собственный парсер — libNeoAppleArchive — чтобы изучить поведение Apple Archive на Linux.

Работая с логикой обработки симлинков, он заметил странность: архив можно было распаковать так, что один из файлов на выходе оказывался… симлинком в любую другую директорию на системе.

Дальнейшие эксперименты показали, что во время распаковки возникает «состояние гонки» (race condition). Библиотека сначала проверяет, существует ли нужная папка, и только потом пытается её создать.

Если в этот момент подложить симлинк на другую директорию, libAppleArchive всё равно будет считать, что каталог создан, и продолжит писать туда файлы. В результате данные попадут по адресу, на который указывает симлинк — полностью под контролем атакующего.

Повторив структуру из симлинков и файлов в архиве несколько раз, Кеффаберу удалось сильно повысить процент успеха атаки.

На этом он не остановился: следующей целью стал обход Gatekeeper. Оказалось, что стандартная утилита Archive Utility сначала распаковывает файлы во временную директорию, а только потом вешает на них карантинные метки. Если с помощью уязвимости заставить libAppleArchive распаковать файл вне этой директории, он обойдёт карантин и сможет запускаться без предупреждений — что, конечно, опасно.

Уязвимость затрагивает не только macOS. libAppleArchive используется в WorkflowKit (Shortcuts), FlexMusicKit, ClipServices, а также в приложении «Файлы» на iOS, которое тоже умеет распаковывать .aar. Даже если включены проверки пути вроде pathIsValid(), гонка всё равно позволяет их обойти.

Кеффабер опубликовал PoC, продемонстрировав, что атака вполне реалистична, хотя и требует знания таких деталей, как переменная $TMPDIR.

Apple уже закрыла дыру в свежих апдейтах, так что срочно обновляйтесь — уязвимость серьёзная, а эксплойт уже в сети.

Engram от DeepSeek: как LLM научили вспоминать, а не пересчитывать

Команда DeepSeek представила новый модуль Engram, который добавляет в трансформеры то, чего им давно не хватало, — встроенную память для быстрого извлечения знаний. Идея проста, но эффектная: вместо того чтобы снова и снова пересчитывать одни и те же локальные паттерны, модель может мгновенно «вспоминать» их через O(1)-lookup и тратить вычисления на более сложные задачи — рассуждения и дальние зависимости.

Engram работает не вместо Mixture-of-Experts (MoE), а вместе с ним. Если MoE отвечает за условные вычисления, то Engram добавляет вторую ось масштабирования — условную память.

По сути, это современная версия классических N-грамм, переосмысленная как параметрическая память, которая хранит устойчивые шаблоны: частые фразы, сущности и другие «статичные» знания.

Технически Engram подключается напрямую к трансформерному бэкбону DeepSeek. Он построен на хешированных таблицах N-грамм с мультихед-хешированием, лёгкой свёрткой по контексту и контекстно-зависимым гейтингом, который решает, сколько памяти «подмешать» в каждую ветку вычислений. Всё это аккуратно встраивается в существующую архитектуру без её радикальной переделки.

 

На больших моделях DeepSeek пошла ещё дальше. В версиях Engram-27B и Engram-40B используется тот же трансформерный бэкбон, что и у MoE-27B, но часть параметров перераспределяется: меньше маршрутизируемых экспертов — больше памяти Engram. В результате Engram-27B получает около 5,7 млрд параметров памяти, а Engram-40B — уже 18,5 млрд, при этом число активируемых параметров и FLOPs остаётся тем же.

Результаты предобучения на 262 млрд токенов выглядят убедительно. При одинаковом числе активных параметров Engram-модели уверенно обходят MoE-базу: снижается задержка, растут показатели на задачах знаний и рассуждений. Например, MMLU увеличивается с 57,4 до 60,4, ARC Challenge — с 70,1 до 73,8, BBH — с 50,9 до 55,9. Улучшения есть и в коде, и в математике — от HumanEval до GSM8K.

 

Отдельно исследователи посмотрели на длинный контекст. После расширения окна до 32 768 токенов с помощью YaRN Engram-27B либо сравнивается с MoE-27B, либо превосходит его  Причём иногда Engram достигает этого при меньших вычислительных затратах.

Механистический анализ тоже говорит в пользу памяти. Варианты с Engram формируют «готовые к предсказанию» представления уже на ранних слоях, а по CKA видно, что неглубокие слои Engram соответствуют гораздо более глубоким слоям MoE. Проще говоря, часть «глубины» модель получает бесплатно, выгружая рутину в память.

Авторы подытоживают: Engram и MoE не конкурируют, а дополняют друг друга. Условные вычисления хорошо справляются с динамикой и рассуждениями, а условная память — с повторяющимися знаниями. Вместе они дают более эффективное использование параметров и вычислений без ломки архитектуры.

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