RSS Проект Ноль Заметка

RSS Проект Ноль

Сайт Google Project Zero - это комплексный ресурс для поиска и устранения уязвимостей в программном обеспечении. Его возглавляет команда исследователей безопасности Google, и на нем представлены подробные анализы недостатков безопасности, руководства и учебные пособия для разработчиков, которые помогут предотвратить появление уязвимостей в их продуктах.

Трэд заметок

Недавно мы опубликовали цепочку эксплойтов для Google Pixel 9, которая продемонстрировала возможность перехода от контекста с нулевым кликом к root-доступу на Android всего за два эксплойта. Уязвимость Dolby с нулевым кликом существовала во всех версиях Android до тех пор, пока не была исправлена в январе 2026 года. Хотя у нас была цепочка эксплойтов для Pixel 9, мы хотели посмотреть, возможно ли написать аналогичную цепочку эксплойтов для Pixel 10. Обновление эксплойта Dolby Изменение нашего эксплойта для CVE-2025-54957 было довольно простым. Большинство необходимых изменений включали обновление смещений, рассчитанных для конкретной версии библиотеки, которую мы использовали на Pixel 9, до аналогичных смещений в библиотеке для Pixel 10. Единственной проблемой (помимо желания лучше документировать, какие syncframes содержали смещения) было то, что Pixel 10 использует RET PAC вместо -fstack-protector, а это означало, что __stack_chk_fail не был доступен для перезаписи кодом. После нескольких проб и ошибок мы использовали dap_cpdp_init, код инициализации, который можно перезаписать, не вызывая функциональных проблем, поскольку он вызывается один раз при инициализации декодера и больше никогда.
Мутационное грамматическое фаззинг — это техника фаззинга, в которой фаззер использует предопределенную грамматику, описывающую структуру образцов. Когда образец мутирует, мутации происходят таким образом, что любые полученные образцы по-прежнему соответствуют правилам грамматики, таким образом, структура образцов сохраняется процессом мутации. В случае с coverage-guided грамматическим фаззингом, если полученный образец (после мутации) вызывает ранее невиданное покрытие кода, этот образец сохраняется в корпусе образцов и используется в качестве основы для будущих мутаций. Эта техника доказала свою способность находить сложные проблемы, и я успешно использовал ее в прошлом, в том числе для обнаружения проблем в реализациях XSLT в веб-браузерах и даже ошибок в движках JIT. Однако, несмотря на эффективность этого подхода, он не лишен недостатков, которые для случайного пользователя фаззинга могут быть неочевидны. В этой статье я представлю то, что я считаю недостатками подхода мутационного coverage-guided грамматического фаззинга. Я также опишу очень простую, но эффективную технику, которую я использую в своих запусках фаззинга, чтобы противостоять этим недостаткам.
В моей последней публикации в блоге я представил новую функцию Windows, Защиту администратора, и то, как она была направлена на создание безопасной границы для UAC там, где ее не существовало. Я описал один из способов, которым мне удалось обойти эту функцию до ее выпуска. Всего в ходе своего исследования я обнаружил 9 обходов, которые теперь все исправлены. В этой публикации в блоге я хотел описать основную причину 5 из этих 9 проблем, в частности, реализацию UI Access, то, как это было давней проблемой с UAC, которую недооценивали, и то, как она сейчас исправляется. Вопрос доступности До Windows Vista любой процесс, работающий на рабочем столе пользователя, мог управлять любым окном, созданным другим процессом, например, отправляя сообщения окну. Этим поведением можно было злоупотреблять, если привилегированный пользователь, такой как SYSTEM, отображал пользовательский интерфейс на рабочем столе. Ограниченный пользователь мог управлять пользовательским интерфейсом и потенциально повышать привилегии. Это называлось Shatter Attack, и обычно это исправлялось путем удаления компонентов пользовательского интерфейса из привилегированного кода.
В первой части этой серии я подробно описал свой путь в исследование безопасности macOS, который привел к обнаружению уязвимости типа (CVE-2024-54529) и уязвимости двойного освобождения (CVE-2025-31235) в системном демоне coreaudiod с помощью процесса, который я называю фаззингом, основанным на знаниях. В то время как первая статья была посвящена процессу поиска уязвимостей, эта статья погружается в сложный процесс эксплуатации уязвимости типа. Я объясню технические детали превращения потенциально эксплуатируемого сбоя в рабочий эксплойт: путь, наполненный тупиками, творческим решением проблем и, в конечном итоге, успехом. Уязвимость: краткий обзор. Если вы еще этого не сделали, я настоятельно рекомендую прочитать мою подробную статью об этой уязвимости, прежде чем продолжить. Для освежения памяти, CVE-2024-54529 - это уязвимость типа в службе com.apple.audio.audiohald Mach в фреймворке CoreAudio, используемом процессом coreaudiod. Несколько обработчиков сообщений Mach, таких как _XIOContext_Fetch_Workgroup_Port, извлекали HALS_Object из Object Map на основе ID из сообщения Mach, а затем выполняли операции над ним, предполагая, что он был определенного типа (ioct) без надлежащей проверки.
Новая функция, представленная в последнем выпуске Windows 11, 25H2, — это Защита администратора. Цель этой функции — заменить контроль учетных записей пользователей (UAC) более надежной и, что важно, безопасной системой, позволяющей локальному пользователю получать права администратора только при необходимости. В этой статье будет представлен краткий обзор новой функции, принципов ее работы и отличий от UAC. Затем я опишу некоторые исследования безопасности, которые я провел, пока она была в предварительных сборках Windows 11. Наконец, я подробно расскажу об одной из девяти отдельных уязвимостей, которые я обнаружил, чтобы обойти эту функцию и незаметно получить полные права администратора. Все проблемы, о которых я сообщил Microsoft, были устранены либо до официального выпуска функции (в дополнительном обновлении KB5067036), либо в последующих бюллетенях безопасности. Примечание: по состоянию на 1 декабря 2025 года функция защиты администратора была отключена Microsoft в связи с проблемой совместимости приложений. Маловероятно, что эта проблема связана с чем-либо, описанным в этой статье, поэтому анализ не меняется.
Хотя наши предыдущие две публикации в блоге содержали технические рекомендации по увеличению усилий, необходимых злоумышленникам для разработки цепочек эксплойтов с нулевым кликом, наш опыт обнаружения, сообщения об этих уязвимостях и их эксплуатации выявил некоторые более широкие проблемы в экосистеме Android. В этой публикации описываются проблемы, с которыми мы столкнулись, и рекомендации по улучшению. Зона атаки аудио Dolby UDC является частью зоны атаки с нулевым кликом большинства устройств Android из-за транскрипции аудио в приложении Google Messages. Входящие аудиосообщения транскрибируются до того, как пользователь взаимодействует с сообщением. На Pixel 9 второй процесс com.google.android.tts также декодирует входящее аудио. Его цель не совсем ясна, но, похоже, она связана с обеспечением возможности поиска во входящих сообщениях.
С появлением потенциального эксплойта RCE в Dolby Unified Decoder, казалось разумным посмотреть, какие драйверы ядра Linux могут быть доступны из полученного контекста пользовательского пространства, контекста mediacodec. Согласно документации AOSP, контекст mediacodec SELinux предназначен для ограниченного (т.е. изолированного) контекста, где используются небезопасные программные декодеры. Тем не менее, используя мой инструмент DriverCartographer, я обнаружил интересный драйвер устройства, /dev/bigwave, который был доступен из контекста mediacodec SELinux. BigWave - это аппаратное обеспечение, присутствующее на Pixel SOC, которое ускоряет задачи декодирования AV1, что объясняет, почему оно доступно из контекста mediacodec. Как неоднократно подтверждалось предыдущими исследованиями, драйверы Android для аппаратных устройств являются лучшим местом для поиска мощных ошибок локального повышения привилегий. Драйвер BigWave не стал исключением - за пару часов аудита кода я обнаружил три отдельные ошибки, в том числе одну, которая была достаточно мощной, чтобы выйти из песочницы mediacodec и получить произвольное чтение/запись в ядре на Pixel 9.
За последние несколько лет в мобильные телефоны было добавлено несколько функций на базе искусственного интеллекта, которые позволяют пользователям лучше искать и понимать свои сообщения. Одним из последствий этого изменения является увеличение поверхности атаки с нулевым кликом, поскольку эффективный анализ часто требует декодирования медиафайлов сообщения до того, как сообщение будет открыто пользователем. Одной из таких функций является транскрипция аудио. Входящие SMS и аудиовложения RCS, полученные Google Messages, теперь автоматически декодируются без участия пользователя. В результате аудиодекодеры теперь находятся в зоне атаки с нулевым кликом большинства телефонов Android. Я потратил немало времени на изучение этих декодеров, сначала сообщив о CVE-2025-49415 в кодеке Monkey's Audio на устройствах Samsung. Основываясь на этом исследовании, команда рассмотрела Dolby Unified Decoder, и мы с Иваном Фратричем сообщили о CVE-2025-54957. Эта уязвимость, вероятно, находится в зоне атаки с нулевым кликом большинства используемых сегодня устройств Android. Параллельно Сет Дженкинс исследовал драйвер, доступный из песочницы, в которой работает декодер на Pixel 9, и сообщил о CVE-2025-36934.
Привет из будущего! Это пост в блоге, который я изначально составил в начале 2017 года. Я написал то, что предполагалось быть первой половиной этого поста (о побеге из ВМ в процесс пользовательского пространства хоста VirtualBox с CVE-2017-3558), но так и не добрался до написания второй половины (от процесса пользовательского пространства хоста VirtualBox до ядра хоста), и в итоге как бы забыл об этом старом черновике поста... Но кажется немного грустным просто оставить этот старый черновик гнить навсегда, поэтому я решил поместить его в нашу очередь постов в блоге сейчас, через 8 лет после того, как я его изначально составил. Я очень немного отредактировал его сейчас (добавил несколько ссылок, исправил некоторую грамматику), но он все еще почти такой же, каким я его составил тогда. Читая этот пост, помните, что, если не указано иное, он описывает ситуацию по состоянию на 2017 год. Хотя большая часть описанного кода, кажется, с тех пор не сильно изменилась...
Группа Google по анализу угроз исследовала файлы изображений, загруженные в VirusTotal, связанные с WhatsApp. Эти файлы, выглядевшие как JPEG, на самом деле были файлами DNG, использующими уязвимость в библиотеке обработки изображений Quram от Samsung. Целевым процессом был com.samsung.ipservice, служба Samsung для функций на основе искусственного интеллекта, которая обрабатывает изображения в MediaStore. Обработка изображений WhatsApp означала, что эксплойт мог быть запущен при открытии полученного изображения, что делало его потенциальным эксплойтом "в один клик". Анализ показал, что файлы DNG содержали подозрительные "списки кодов операций" с многочисленными кодами операций, отклоняющимися от ожидаемых стандартов DNG. Библиотека Quram, продукт стороннего производителя, обрабатывает декодирование формата изображения, и уязвимость находится в Java_com_quramsoft_images_QuramDngBitmap_DecodeDNGImageBufferJNI. Эксплойт использовал поврежденные файлы DNG для запуска повреждения памяти в этой конкретной нативной функции. Целью эксплойта было выполнение кода в процессе com.samsung.ipservice. Эксплойт нацелен на аллокатор scudo.
Сет Дженкинс обнаружил примитив произвольной записи при эксплуатации ядра Pixel, но ему не хватало утечки KASLR. Он исследовал линейное отображение ядра Linux, которое напрямую отображает физическую память в область виртуальных адресов. На Android ARM64 это линейное отображение имеет фиксированный виртуальный адрес из-за требований к горячему подключению памяти и ограниченного количества бит виртуальных адресов. Следовательно, вычисление phys_to_virt становится статическим, причем PHYS_OFFSET постоянно равен 0x80000000.Усугубляя это, телефоны Pixel распаковывают ядро по статическому физическому адресу 0x80010000 при каждой загрузке. Это позволяет статически вычислять виртуальные адреса ядра для любой записи данных ядра. Например, строка modprobe_path может быть надежно доступна по адресу 0xffffff8001ff2398. На практике статический базовый адрес ядра 0xffffff8000010000 может использоваться на Pixel для получения виртуальных адресов символов ядра, обходя необходимость утечки KASLR для примитивов произвольного чтения-записи.Линейное отображение также позволяет отображать области данных ядра в режиме чтения-записи, хотя области текста остаются неисполняемыми. Даже на устройствах со случайными физическими адресами загрузки ядра, неслучайное линейное отображение помогает в эксплуатации, позволяя злоумышленникам нацеливаться на предсказуемые физические адреса памяти. Техники распыления памяти могут размещать данные по известным виртуальным адресам ядра, упрощая подделку структур данных ядра.Как отсутствие случайности линейной карты, так и статический физический адрес ядра на Pixel считаются намеренным поведением со стороны команды ядра Linux и Google. Хотя KASLR остается ценным против удаленных атак, его эффективность против локальных злоумышленников снижается. Сохранение целостности KASLR посредством инженерных усилий имеет решающее значение для общей безопасности. Будущие улучшения могут включать случайное распределение линейной карты, увеличение энтропии выделения физических страниц и случайное распределение физических адресов ядра.
Google Project Zero обсудил необходимость удаленных утечек ASLR для эксплуатации ошибок повреждения памяти на устройствах Apple. Это привело к открытию техники, которая могла удаленно утекать указатель без нарушений безопасности памяти или атак по времени. Метод применим к поверхностям атаки, которые десериализуют, повторно сериализуют и возвращают данные, предоставленные злоумышленником. Хотя на macOS/iOS не было выявлено немедленных реальных поверхностей атаки, техника была протестирована с использованием искусственного случая с NSKeyedArchiver. Проблема была сообщена Apple и исправлена, хотя публичная запись в трекере ошибок не была сделана из-за отсутствия продемонстрированного реального воздействия. Эта новая техника основана на предыдущих работах, связанных с атаками коллизий в хэш-таблицах. Исторически атаки HashDoS использовали наихудший сценарий производительности хэш-таблиц для вызова отказа в обслуживании. Более ранние исследования также намекали на использование коллизий хэшей для утечки адресов. Концепция HashDoS может рассматриваться как замедление злоумышленником доступа к определенным хэш-корзинам. Этот принцип был использован в Firefox для утечки адресов кучи посредством измерения времени вставки в JavaScript Map. Итерация по структурам данных с указателями в качестве ключей также может раскрывать информацию об адресах объектов. Механизмы сериализации, особенно те, которые допускают произвольные графы объектов, могут быть небезопасными. NSKeyedUnarchiver от Apple работает с белым списком десериализуемых классов. Конкретный тестовый случай направлен на утечку указателя общего кэша путем десериализации и повторной сериализации данных, предоставленных злоумышленником, с использованием NSKeyedUnarchiver. Хэш объекта-одиночки NSNull, если он не обрабатывается явно, по умолчанию равен его адресу, который хранится в общем кэше. Экземпляры NSNumber хэшируются по-разному, в зависимости от их числового значения. Словари используют коды хэшей по модулю количества корзин для управления размещением ключей.
Предоставленный текст представляет собой в основном CSS-код, используемый для стилизации веб-контента, в частности списков. Он импортирует шрифты с Googleusercontent. Код определяет различные стили списков и типы маркеров для разных классов списков. Многие классы начинаются с префикса "lst-kix", за которым следуют буквенно-цифровые идентификаторы, указывающие на различные конфигурации списков. Эти конфигурации, вероятно, управляют внешним видом нумерованных списков с различной нумерацией (десятичная, строчные латинские буквы, строчные римские цифры) и маркированных списков с различными формами маркеров (круги, квадраты, ромбы). Свойства counter-increment и counter-reset используются для управления нумерацией элементов нумерованных списков. Псевдоэлемент ::before используется для вставки конкретных символов маркеров или чисел для каждого элемента списка. Широкое использование CSS-классов предполагает необходимость высоко настроенных и разнообразных представлений списков на веб-странице. Общая цель — обеспечить последовательное и эстетически приятное форматирование списков в различных контекстах.
"Команда Google Project Zero обновила свою политику раскрытия уязвимостей до модели "90+30", стремясь к более быстрому развитию и внедрению исправлений. Однако, остается значимая проблема: "пробел в исправлениях", задержка между выпуском исправления и его установкой пользователем. Команда Project Zero идентифицировала более раннюю задержку, "пробел в исправлениях upstream", где поставщики upstream имеют исправления, но зависимые downstream не интегрировали их. Этот пробел upstream значительно увеличивает жизненный цикл уязвимостей. Для решения этой проблемы объявляется новая пробная политика, "Прозрачность отчетности". Эта пробная политика добавляет публичное раскрытие в течение недели после сообщения об уязвимости, включая поставщика, продукт, дату сообщения и дедлайн раскрытия. Основная политика "90+30" остается, и Google Big Sleep также тестирует эту политику. Целью является уменьшение пробела в исправлениях upstream, увеличивая прозрачность, информируя зависимые downstream и поощряя лучшую коммуникацию. Целью пробного периода является отслеживание времени от сообщения до установки исправления на устройстве пользователя, подчеркивая, когда исправления не применяются. Никакие технические подробности не будут выпущены до дедлайна; это предупреждение, а не инструкция для атакующих. Хотя некоторые поставщики могут столкнуться с нежелательным вниманием, преимущества перевешивают риски для меньшинства. Конечной целью является более безопасная экосистема с уязвимостями, исправленными на устройствах пользователей. Это проба, и Project Zero будет отслеживать ее эффекты и адаптировать политики соответственно."
Предоставленный текст является таблицей стилей CSS, которая определяет различные стили списков и счетчики. Она использует API шрифтов Google для импорта шрифтов. Таблица стилей определяет счетчики и стили списков для различных идентификаторов списков, таких как kix_8kp8wobudiou, kix_qux0xwfdwk15 и kix_hyrlma59f00u. Каждый идентификатор списка имеет несколько счетчиков и стилей списков, включая стили decimal, lower-latin и lower-roman. Таблица стилей также определяет стили списков для упорядоченных списков (ol) и неупорядоченных списков (ul). Счетчики увеличиваются для каждого элемента списка, а стили списков определяются с помощью свойства content. Таблица стилей определяет общее количество 134 стилей и счетчиков списков. Стили списков и счетчики используются для форматирования списков в документе или веб-странице. Таблица стилей написана на языке CSS и использует различные селекторы и свойства для определения стилей и счетчиков списков.
Предоставленный текст кажется коллекцией стилей CSS для списков, включая упорядоченные списки (ol) и неупорядоченные списки (ul). Стили определяют маркеры элементов списка, такие как флажки, круги и римские цифры. Определены несколько стилей списков, каждый со своим собственным набором маркеров элементов списка и счетчиков. Некоторые стили списков имеют конкретные счетчики, такие как десятичные, нижнеримские или нижнелатинские. Счетчики используются для нумерации элементов списка. Текст также определяет различные маркеры элементов списка, включая флажки, круги и квадраты. Некоторые стили списков имеют смесь типов маркеров, а другие используют один тип на протяжении всего списка. Стили идентифицируются уникальными именами классов, такими как lst-kix_404916xkl9yq-0. В целом, текст предоставляет полный набор стилей списков для использования в документах HTML.
Эксплойт NSO BLASTPASS iMessage представлял собой zero-click (без клика), zero-day (нулевого дня) уязвимость, которая компрометировала iPhone, работающие под управлением последней версии iOS, без какого-либо взаимодействия со стороны жертвы. Эксплойт использовал вложения PassKit, содержащие вредоносные изображения, отправленные с учетной записи iMessage злоумышленника жертве. Apple выпустила внеочередное обновление безопасности для iOS 7 сентября 2023 года, чтобы исправить уязвимость. Команда WebP также выпустила предлагаемое исправление проблемы, которое позже было интегрировано в Chrome.Основной причиной уязвимости была проблема повреждения памяти в формате изображений WebP Lossless, а именно в кодировании Хаффмана, используемом в этом формате. Уязвимость позволяла злоумышленнику определять недопустимые деревья Хаффмана, что могло вызывать повреждение памяти при построении таблицы декодирования. Однако примитив повреждения был ограничен, и разбор изображения прекращался вскоре после срабатывания ошибки.Эксплуатация уязвимости оставалась загадкой, поскольку было неясно, как осуществить эксплойт в одноразовой zero-click конфигурации. Примитив повреждения был очень ограниченным, и без доступа к образцам было практически невозможно понять, как использовать уязвимость.В середине ноября автор получил несколько образцов файлов BLASTPASS PKPass и журналы сбоев неудачных попыток эксплуатации, что позволило ему проанализировать образцы и понять, как работает эксплойт. Анализ показал, что уязвимость использовалась путем отправки вредоносного файла изображения, который вызывал проблему повреждения памяти, а затем с помощью ограниченного примитива повреждения выполнялся произвольный код.Формат WebP — это относительно современный формат файлов изображений, в котором для сжатия изображений используется кодирование Хаффмана. Формат Lossless использует RIFF-контейнер и отдельный формат Lossless, где и была обнаружена уязвимость. Уязвимость находилась в кодировании Хаффмана, используемом в формате Lossless, а именно в способе построения таблицы декодирования.Анализ образцов, проведенный автором, показал, что в эксплойте использовалась комбинация методов для выполнения произвольного кода, включая использование ограниченного примитива повреждения для перезаписи указателя функции и последующего выполнения вредоносного кода. Анализ также показал, что эксплойт был очень сложным и требовал глубокого понимания формата WebP и используемого в нем кодирования Хаффмана.В целом, эксплойт NSO BLASTPASS iMessage был очень сложной и комплексной уязвимостью, требующей глубокого понимания формата WebP и используемого в нем кодирования Хаффмана. Эксплуатация уязвимости оставалась загадкой, но анализ образцов показал, что можно выполнять произвольный код, используя комбинацию методов.
Джеймс Форшоу, исследователь из Google Project Zero, обсуждает «класс ошибок, связанных с захваченным объектом» в объектно-ориентированных технологиях удаленного взаимодействия, таких как DCOM и .NET Remoting. Эти технологии позволяют создавать объектно-ориентированные интерфейсы, способные пересекать границы процессов и безопасности, но эта гибкость имеет и недостатки, включая потенциальную возможность повышения привилегий или удаленного выполнения кода.Не все объекты, которые могут быть удалённо вызваны, безопасны для этого, и некоторые объекты, такие как XML-библиотеки, могут выполнять произвольный скрипт в контексте документа XSLT. Если объект XML-документа становится доступен за пределами границы безопасности, клиент может выполнить код в контексте серверного процесса.Существует несколько сценариев, которые могут привести к появлению этого класса ошибок, включая непреднамеренное совместное использование небезопасного объекта, использование асинхронных примитивов маршалинга и злоупотребление встроенными механизмами поиска и создания экземпляров объектов. Например, библиотеки Windows Runtime содержали ошибку, добавляющую код в существующий COM-объект XML DOM Document v6, который раскрывал специфичные для среды выполнения интерфейсы и позволял злоумышленнику запрашивать старый интерфейс IXMLDOMDocument и использовать его для запуска скрипта XSLT.Ещё один пример — классы .NET FileInfo и DirectoryInfo, которые могут быть маршалированы как по значению, так и по ссылке, и могут использоваться для создания нового экземпляра объекта в процессе сервера. Злоумышленник может использовать это, отправляя сериализованную форму объекта на сервер, который создаст новый экземпляр объекта, а затем прочитает созданный объект, который будет маршалирован обратно злоумышленнику по ссылке.Наконец, упомянут сценарий злоупотребления встроенными механизмами поиска и создания экземпляров объектов для создания неожиданного объекта. Например, в COM злоумышленник может использовать API CoCreateInstance для создания произвольного COM-объекта в контексте сервера и получить его обратно клиенту. Это может быть использовано для создания объекта XML DOM Document на сервере, возвращения его клиенту, маршалированного по ссылке, а затем использования его для выполнения произвольного кода в контексте сервера.Эти сценарии подчеркивают важность тщательного рассмотрения последствий безопасности при использовании объектно-ориентированных технологий удаленного взаимодействия и обеспечения того, чтобы только безопасные объекты передавались через границы безопасности.
Джеймс Форшоу из Google Project Zero опубликовал запись в блоге о создании примитива ловушки доступа к виртуальной памяти в Windows. Цель этого примитива — заставить чтение или запись виртуального адреса памяти приостановиться на значительное время, что может быть использовано для эксплуатации определённых ошибок в ядре. В своей предыдущей записи в блоге Форшоу предлагал использовать SMB-файл на удалённом сервере или злоупотреблять Cloud Filter API для достижения этого. Однако новая функция в Windows 11 24H2 позволяет злоупотреблять SMB-файловым сервером непосредственно на локальной машине, без необходимости удалённого сервера. Эта функция предоставляет возможность указать целевой TCP-порт для SMB-клиента из командной строки, что можно использовать для подключения к поддельному SMB-серверу. Новая функция позволяет эксплуатировать уязвимости, известные как ошибки «Ложной неизменяемости файлов», и для её использования не требуется права администратора. Форшоу обновил свой пример поддельного SMB-сервера, чтобы разрешить привязку к другому порту, что позволяет проводить атаку локально. Это изменение доступно в Windows 11 24H2, которая уже доступна для широкой публики, и включено по умолчанию. Администратор может отключить эту функцию через групповую политику, но маловероятно, что обычные пользователи изменят этот параметр. Форшоу считает, что включение этой функции по умолчанию — ошибка, которая может создать проблемы для Windows в будущем. В целом, эта новая функция предоставляет новый способ эксплуатации определённых уязвимостей в Windows и подчёркивает важность тщательного рассмотрения при внедрении новых функций в операционную систему.
- Первичное расследование: Google получил логи kernel panic от Amnesty International, указывающие на эксплуатацию в дикой природе (ITW) целевого драйвера Qualcomm. - Анализ логов kernel panic: Без образца эксплойта Project Zero/TAG полагались на логи kernel panic для выявления потенциальных уязвимостей. - Обнаружение уязвимостей: Четыре из логов kernel panic содержали полезную информацию, которая привела к обнаружению шести уязвимостей в драйвере Qualcomm. - Гипотеза стратегии эксплуатации: Одна из уязвимостей была идентифицирована как вероятно эксплуатируемая в сценарии ITW на основе логов сбоя. - Подробности о багах: В блоге описываются каждая из шести обнаруженных уязвимостей, предоставляя технические подробности и фрагменты кода для каждой. - Сотрудничество с группой анализа угроз: Группа анализа угроз Google (TAG) сотрудничала с Amnesty International, чтобы предоставить артефакты и помочь в техническом анализе. - Вызов обратного инжиниринга: Определение эксплуатируемой уязвимости без образца эксплойта требовало тщательного анализа логов kernel panic. - Ограниченная информация: Отсутствие образца эксплойта делало трудным точное определение эксплуатируемой уязвимости. - Продолжительность поиска багов: Расследование и обнаружение уязвимостей заняло более двух с половиной месяцев. - Отчет Amnesty International: Amnesty International опубликовала отчет о используемых эксплуатациях против своих целей.
Команда The Big Sleep обнаружила ранее неизвестную уязвимость, связанную с переполнением стека в SQLite, широко используемом открытом исходном коде базы данных. Уязвимость была обнаружена в результате сотрудничества между Google Project Zero и Google DeepMind и была сообщена разработчикам в начале октября. Причина проблемы заключалась в специальном значении-сentinel -1, использованном в поле типа индекса, что привело к потенциально эксплуатируемому состоянию в релизной сборке. Уязвимость была обнаружена агентом The Big Sleep, который использует фреймворк для исследования уязвимостей с помощью больших языковых моделей. Агент смог найти уязвимость, проанализировав начальный коммит и применив существующие знания о SQLite. Команда The Big Sleep считает, что эта работа имеет огромный оборонительный потенциал, поскольку она может помочь обнаружить уязвимости в программном обеспечении до их выпуска.
Предоставленный текст является коллекцией стилей CSS для HTML-списков. Стили определяют различные форматы списков, включая упорядоченные и неупорядоченные списки. Они используют счетчики для автоматического нумерования элементов списка. Счетчики определяются с помощью различных стилей, таких как десятичный, нижний латинский и нижний римский. Стили также определяют содержимое элементов списка, включая значение счетчика и точку. Некоторые стили имеют конкретное имя класса, такое как lst-kix_xrbpc8tfqvva-0, lst-kix_phgwltrvdlzg-0 и lst-kix_syb5po7nfbu-0. Стили используются для настройки внешнего вида HTML-списков. Они могут быть использованы для создания различных типов списков, таких как нумерованные списки, списки с маркерами и буквенные списки. Стили также могут быть использованы для настройки внешнего вида элементов списка, таких как шрифт, цвет и интервал.
Ник Гэллоуэй, старший инженер безопасности, обнаружил переполнение целого числа в декодере видео AV1 dav1d в 2023 году. Это переполнение приводит к записи вне границ памяти, что потенциально может вызвать уязвимость для удаленного выполнения кода. Dav1d - это высоко оптимизированный декодер AV1 с разными путями кода для различных архитектур. Он широко поддерживается в веб-браузерах и является привлекательной целью для fuzzing. Открытие Гэллоуэя было сделано с помощью модифицированной версии fuzzera dav1d в oss-fuzz, который определяет конфигурации для сборки dav1d_fuzzer и dav1d_fuzzer_mt. Fuzzer реализует LLVMFuzzerTestOneInput и инициализирует структуру Dav1dSettings с значениями по умолчанию. Fuzzer Гэллоуэя нашел переполнение, выполнив как можно больше строк кода с помощью небольшого набора тестовых случаев. Переполнение происходит, когда используются несколько потоков декодирования и вычисляются значения для массива смещения начала плитки. Переполненные значения затем передаются в setup_tile(), что приводит к записям вне границ. Были предоставлены два тестовых случая с ошибкой, один из которых более вероятно может быть эксплуатируемым.
Введение: Текст представляет собой краткое изложение ключевых элементов эффективного общения. Ясность и лаконичность: Эффективное общение предполагает передачу информации четко и лаконично, чтобы сообщение было легко понято. Организация и структура: Правильная организация и структура помогают читателям легко ориентироваться в контенте, улучшая понимание. Релевантность и соответствие: Пристраивание сообщения к интересам и потребностям аудитории обеспечивает вовлечение и соответствие. Доверие и этика: Установление доверия и построение доверительных отношений с аудиторией является ключевым для эффективного общения. Сопереживание и перспектива: Понимание перспективы аудитории и сопереживание их потребностям улучшает эффективность сообщения. Активное слушание и обратная связь: Активное слушание включает в себя внимание к откликам аудитории и включение обратной связи для улучшения понимания. Невербальное общение: Невербальные сигналы, такие как язык тела и тон голоса, играют важную роль в передаче сообщений и установлении контакта. Культурная чувствительность: Уважение культурных различий и адаптация стилей общения к разным аудиториям является необходимым для успешного общения. Продолжающееся улучшение: Эффективное общение - это непрерывный процесс, требующий постоянного улучшения и адаптации к меняющимся потребностям и контекстам.
Проект Zero исследует потенциал больших языковых моделей (БЯМ) в исследовании уязвимостей. Несмотря на низкие начальные оценки в бенчмарке CyberSecEval2, усовершенствованные методологии тестирования могут значительно улучшить производительность БЯМ. Проект Zero предлагает основные принципы оценки БЯМ, уделяя особое внимание обеспечению достаточного пространства для рассуждений, преодолению ограничений модели и обеспечению реалистичных сценариев тестирования. Реализация этих принципов в их фреймворке привела к улучшению результатов в CyberSecEval2, достигнув высоких оценок в тестах на переполнение буфера и улучшив результаты в тестах на сложные повреждения памяти. Хотя прогресс достигнут, Проект Zero подчеркивает необходимость в более сложных бенчмарках и эффективных методологиях для полного использования возможностей БЯМ.
Определите TCP-соединение: TCP-соединение - это виртуальный канал связи между двумя конечными точками в сети.Объясните TCP-протокол рукопожатия: TCP-протокол рукопожатия включает в себя трехэтапное рукопожатие для установления соединения между клиентом и сервером.Опишите роль пакетов SYN, ACK и FIN в TCP: пакеты SYN инициируют запросы на соединение, пакеты ACK подтверждают полученные данные, а пакеты FIN завершают соединения.Объясните разницу между TCP и UDP: TCP - это ориентированный на соединение протокол, который обеспечивает надежную передачу данных, в то время как UDP - это безсвязный протокол, который отдает приоритет скорости над надежностью.Опишите TCP-механизм скользящего окна: механизм скользящего окна позволяет эффективно передавать данные, подтверждая полученные данные и регулируя размер окна соответственно.Объясните концепцию контроля перегрузки TCP: алгоритмы контроля перегрузки TCP направлены на предотвращение сетевой перегрузки путем регулирования скорости передачи в зависимости от условий сети.Опишите механизм повторной передачи TCP: TCP повторно передает потерянные или поврежденные пакеты данных для обеспечения надежной передачи данных.Объясните разницу между TCP-сервером и TCP-клиентом: TCP-сервер прослушивает входящие соединения и предоставляет услуги, в то время как TCP-клиент инициирует соединения и запрашивает услуги.Опишите цель TCP-портов: TCP-порты идентифицируют различные службы или приложения, работающие на хосте.Объясните роль TCP-прокси-сервера: TCP-прокси-сервер действует как посредник между клиентами и серверами, предоставляя дополнительную функциональность, такую как кэширование, балансировку нагрузки и безопасность.
- Windows-регистр - это иерархическая база данных ключей и значений, которая хранит настройки и конфигурационные данные. - Ключи являются защищенными объектами, а значения хранят фактические данные. - Соты реестра - это двоичные файлы, которые хранят конкретные поддеревья реестра. - Основные операции с реестром включают загрузку и выгрузку сот, создание и удаление ключей, а также установку и запрос значений. - Реестр был введен в Windows 3.1, изначально с одним сотом и ключом, и значительно расширен в Windows NT 3.1 с множеством сот и именами значений. - Windows NT 4.0 ввел новые соты и еще больше усовершенствовал безопасность реестра. - Windows 2000 реализовал поддержку 64-битных реестров, расширил функции безопасности и представил инструмент RegEdit32. - Современные версии Windows продолжают использовать реализацию реестра NT, с постепенными улучшениями в производительности, безопасности и совместимости. - Реестр доступен через инструмент редактора реестра (Regedit.exe) или программно с помощью Win32 API.
Документ подводит итоги ключевой информации из различных источников в компактный и организованный формат. Он предоставляет обзор исследований, теорий и концепций, связанных с образованием и психологией. Сводка включает исследования по развитию мозга, стилям обучения и эффективным стратегиям преподавания. Она также обсуждает влияние бедности, травмы и других социальных факторов на образовательные результаты. Теории Пиаже, Выготского и Бандуры объясняются, и их последствия для преподавания подчеркиваются. Сводка подчеркивает важность доказательной практики и принятия решений, основанных на данных, в образовании. Она затрагивает текущие дебаты и вызовы в поле, такие как роль технологий и необходимость равенства и включения. Сводка предлагает практические советы для педагогов, чтобы улучшить свои преподавательские практики и поддержать учение учеников. Она подчеркивает важность сотрудничества между педагогами, родителями и общиной. Документ хорошо написан, ясен и доступен для широкой аудитории, делая его ценным ресурсом для педагогов и политиков.
Расширения ARM Memory Tagging Extensions (MTE) могут обнаруживать повреждение памяти на самых ранних этапах, улучшая диагностические и безопасные меры. MTE теперь доступна на смартфонах Pixel 8/8 Pro, что является значительным прогрессом в мобильной безопасности. MTE можно активировать на Pixel 8/8 Pro через опции разработчика, но необходимо отметить, что это не официально поддерживаемая конфигурация. Активация MTE требует изменений как в загрузчике, так и в системе для выделения памяти для хранения тегов. Чтобы активировать MTE, необходимо включить режим разработчика и отладку USB на устройстве. С помощью компьютера с инструментами отладки Android необходимо установить определенные свойства на устройстве с помощью команды 'adb'. Свойства, которые необходимо установить, - это 'arm64.memtag.bootctl', 'persist.arm64.memtag.default' и 'persist.arm64.memtag.app_default', все установлены в 'sync'. Необходим перезапуск устройства, чтобы применить изменения и активировать MTE. Хотя автор не столкнулся с проблемами при включенном MTE, необходимо признать возможный риск крахов приложений или сбоев. Это руководство предоставляет шаги по активации MTE на устройствах Pixel 8/8 Pro, но пользователи должны действовать с осторожностью и признавать возможные риски.
Носимое устройство под названием Moxi отслеживает уровни глюкозы в крови в реальном времени, предоставляя непрерывные данные для управления диабетом. Устройство использует маленький датчик, вставленный под кожу, чтобы измерять уровни глюкозы в интерстициальной жидкости. Приложение Moxi отображает реальное время глюкозы, графики трендов и оповещения, наделяя пользователей знаниями о своих уровнях глюкозы. Устройство предлагает персонализированные цели глюкозы и оповещения, помогая пользователям оставаться в здоровом диапазоне. Приложение интегрируется с другими инструментами для управления диабетом, включая инсулиновые помпы и непрерывные глюкозометры (CGM). Благодаря точным и своевременным данным о глюкозе, Moxi помогает пользователям принимать информированные решения о дозировке инсулина и стилях жизни. Маленький размер и дизайн устройства позволяют комфортабельно и непрерывно отслеживать уровни глюкозы. Связь данных Moxi позволяет сотрудничать между пациентами и медицинскими работниками, улучшая координацию ухода за диабетом. Устройство получило одобрение FDA и доступно по рецепту для людей с диабетом. Moxi стремится улучшить качество жизни для людей с диабетом, предоставляя реальное время мониторинга глюкозы и персонализированную поддержку.
В декабре 2022 года команда Google по анализу угроз обнаружила цепочку эксплуатации, нацеленную на устройства Samsung Android. Эта цепочка эксплуатации использовала 0-дневную уязвимость в слое совместимости ALSA, CVE-2023-0266, и 0-дневную уязвимость в драйвере GPU Mali, CVE-2023-2608. Эксплуатация включала гонку за ресурсами в драйвере ALSA, что позволяло использовать технику рассеивания кучи с помощью функций драйвера GPU Mali. Атакующие использовали рассеивание кучи, чтобы получить контроль над счетчиком программы и затем эксплуатировали уязвимость CVE-2023-0266, чтобы получить произвольный доступ на чтение/запись в ядре. Эксплуатация также использовала уязвимость CVE-2023-26083, чтобы утечь информацию о пространстве адресов ядра и преодолеть KASLR. Цепочка эксплуатации была объединена с детерминированной, высоконадежной техникой произвольного чтения/записи, используя подсистему VFS ядра Linux. Эксплуатация заменила ashmem_misc.fops указателем на фиктивный struct file_operations, что позволяло контролировать операции с файлами, создаваемыми при открытии /dev/ashmem. Эта эксплуатация была обнаружена в дикой природе в декабре 2022 года и с тех пор была исправлена.
Текст обсуждает разные аспекты общества, включая образование, здравоохранение, технологии, окружающую среду и социальные проблемы. Он подчеркивает вызовы и возможности, которые возникают в этих областях. Образование должно адаптироваться к технологическим инновациям и готовить индивидуумов к будущему рынку труда. Системы здравоохранения должны улучшать доступность, доступность и качество, а также бороться с новыми заболеваниями и психическим здоровьем. Быстрое развитие технологий приносит как преимущества, так и озабоченности по поводу приватности данных, этики и влияния на занятость. Проблемы окружающей среды требуют срочного внимания к изменению климата, загрязнению и истощению ресурсов. Социальные проблемы, такие как бедность, неравенство и дискриминация, требуют совместных усилий для равноправного исхода. Текст подчеркивает взаимосвязь между этими областями и необходимость комплексного подхода к решению общественных проблем. Он подчеркивает важность инноваций, сотрудничества и этических соображений в формировании будущего общества. В конечном счете, цель состоит в создании более справедливого, устойчивого и равноправного общества для всех.
Проект Zero получил доступ к оборудованию ARM MTE в середине 2022 года, что позволило оценить его эффективность в предотвращении эксплуатации уязвимостей памяти. Несмотря на ограничения, MTE считается самым многообещающим подходом для улучшения безопасности программного обеспечения на C/C++ в 2023 году, предлагая превосходное обнаружение повреждений памяти при первом опасном доступе. Хотя MTE не полностью устранит эксплуатируемые проблемы безопасности памяти, особенно с учетом спекулятивных атак по каналам побочных эффектов, он обеспечивает более широкий охват эксплуатации, чем другие практические предложения. В блоге утверждается, что программные решения для обеспечения безопасности памяти в C/C++ с аналогичным охватом, как у MTE, вряд ли смогут достичь более низкого временного overhead, чем AddressSanitizer/HWAsan, который является слишком высоким для большинства производственных нагрузок. Продукты, планирующие поддерживать большие кодовые базы на C/C++ и считать повреждение памяти ключевым риском для безопасности, рекомендуется активно поддерживать ARM's MTE. Серия блогов включает объективный обзор тестирования реализации, предоставляя технические основы для тех, кто заинтересован в реализации мер защиты на основе MTE. Она также предлагает субъективные оценки различных подходов к мерам защиты на основе MTE в контекстах пользовательского режима и обсуждает дополнительные вызовы, возникающие при использовании MTE для защиты в ядерном режиме. Серия блогов стремится предоставить полный обзор потенциального воздействия MTE на безопасность программного обеспечения и практические аспекты его реализации.
Введение: - данный документ предоставляет краткое изложение текста по конкретной теме.Ключевые моменты: - текст охватывает разные аспекты темы, включая ее определение, историю и применения. - он исследует разные точки зрения и теории, связанные с предметом.Определение: - в документе приводится четкое и лаконичное определение темы, закладывающее основу для дальнейшего понимания.История: - текст погружает в исторический контекст темы, прослеживая ее эволюцию и развитие во времени.Применения: - документ подчеркивает практические применения темы, демонстрируя ее важность в различных областях.Точки зрения и теории: - в документе представлены разные точки зрения и теории, связанные с темой, позволяя читателям знакомиться с разнообразными точками зрения.Поддерживающие доказательства: - текст включает доказательства и примеры, подтверждающие утверждения и аргументы, сделанные в рамках краткого изложения.Заключение: - краткое изложение заканчивается повторением ключевых моментов и подчеркиванием общей важности темы.Ясность и связность: - краткое изложение написано в ясном и связном стиле, обеспечивая читателям легкое понимание и последовательное изложение материала.Лаконичность: - краткое изложение лаконично, захватывая основную информацию без пропуска важных деталей, делая его эффективным чтением для читателей.
- Таблица суммирует информацию, связанную с определенной темой. - Каждая строка представляет собой разный аспект или категорию информации. - Столбцы используются для организации и разделения данных в каждой строке. - Ячейки содержат конкретные детали или значения, связанные с соответствующей строкой и столбцом. - Таблица отформатирована с помощью цветных ячеек, чтобы подчеркнуть разные категории информации. - Некоторые ячейки содержат подзаголовки, чтобы далее категоризировать данные в строке. - Таблица включает как числовые, так и нечисловые данные. - Числовые данные представлены в численном формате, а нечисловые данные - в виде текста. - Таблица использует аббревиатуры, такие как "C" для компании и "T" для общего количества. - Она также включает единицы измерения, такие как "pt" для пунктов. - Таблица разделена на разделы, каждый из которых имеет уникальный заголовок. - Заголовки обеспечивают контекст и организацию для данных в каждом разделе.
Google Project Zero и Google Cloud провели обзор безопасности расширений Intel Trust Domain Extensions (TDX). TDX стремится изолировать виртуальные машины, обеспечивая безопасность физической памяти гостя и ограничивая доступ к окружающей среде хостинга. Обзор основывался на предварительном выпуске исходного кода для версии TDX 1.0. В результате обзора были выявлены 10 уязвимостей безопасности, которые были исправлены до финального выпуска функции TDX. Кроме того, были определены пять дополнительных областей для будущих улучшений в области защиты. Окончательный отчет подчеркивает ключевые проблемы и предоставляет обзор архитектуры TDX. Блог Google Cloud по безопасности и окончательный отчет содержат больше информации. Intel опубликовал исходный код на сайте TDX для независимого обзора. Обзор демонстрирует приверженность Google к безопасности и подчеркивает важность сотрудничества между поставщиками и исследователями в области безопасности. Исправленные уязвимости улучшают безопасность TDX, обеспечивая более высокую защиту конфиденциальных данных в виртуализированных средах.
- Проект Zero сообщил о 18 уязвимостях в модемах Exynos от Samsung, из которых четыре позволяют удаленно выполнять код с помощью номера телефона. - Четыре серьезные уязвимости (CVE-2023-24033, CVE-2023-26496, CVE-2023-26497, CVE-2023-26498) позволяют атакующим скомпрометировать устройства удаленно без взаимодействия с пользователем. - Остальные 14 уязвимостей требуют локального доступа или злого намерения со стороны мобильного оператора. - Подвержены устройствам Samsung (S22, M33, A71 и т.д.), Vivo (S16, S15 и т.д.), Pixel 6/7 серии и автомобилям с чипсетом Exynos Auto T5123. - Сроки исправления уязвимостей разнятся по производителям, но пользователи могут временно отключить Wi-Fi звонки и VoLTE. - Проект Zero не разглашал четыре уязвимости из-за возможного вреда защитникам. - Пользователям рекомендуется обновлять свои устройства как можно скорее, чтобы устранить как раскрытые, так и нераскрытые уязвимости.
- В рамках проекта создавалась социальная медиа-платформа с профилями пользователей, созданием постов и функционалом комментариев. - Фронтенд разрабатывался с использованием React.js и включал в себя Redux для управления состоянием. - Для хранения данных использовалась база данных MySQL, а в качестве бэкенда - Node.js с Express.js. - Проект развертывался с помощью контейнеров Docker на AWS Elastic Beanstalk. - Платформа включала функции, такие как аутентификация пользователей, контент, создаваемый пользователями, и разделы комментариев для интерактивного общения. - Бэкенд-логика реализовывалась на Node.js, управляя регистрацией пользователей, созданием постов и обработкой комментариев. - Контейнеры Docker обеспечивали легковесный и портативный способ упаковки и развертывания приложения. - Elastic Beanstalk упрощал процесс развертывания, позволяя автоматически масштабировать и распределять нагрузку.
- Иван Фратрич, исследователь Project Zero, обнаружил CVE-2022-42855, уязвимость в XML-анализаторе в приложении Mail от Apple. - Эта уязвимость могла бы позволить атакующему выполнить произвольный код на уязвимом устройстве через поддельное электронное письмо. - Apple исправила уязвимость в iOS 15.7.2 и macOS Monterey 12.6.2. - Изменения в укреплении, связанные с уязвимостью, были включены в iOS 16.2 и macOS Ventura 13.1. - Исследования Фратрича были сосредоточены на странностях XML-анализа и их безопасных последствиях в приложениях на основе XMPP. - Другие примеры уязвимостей XML-анализа были идентифицированы, включая уязвимость в приложении Mail от Apple, известную как Ps. - Ps позволяла атакующим выполнять произвольный код на уязвимых устройствах, отправляя поддельное электронное письмо с вредоносным XML-вложением. - Apple исправила Ps в macOS Catalina 10.15.7 и iOS 13.7. - Фратрич подчеркивает важность тщательного XML-анализа и валидации для предотвращения таких уязвимостей.
- Исследователь Project Zero Мэдди Стоун обнаружила, что многие атаки с использованием нулевых дней в 2022 году эксплуатировали исправленные уязвимости. - Уязвимость драйвера GPU Mali от ARM (CVE-2021-39793) использовалась в реальном нападении на Pixel 6. - Исследователь Project Zero Янн Хорн обнаружил пять дополнительных эксплуатируемых уязвимостей в драйвере GPU Mali. - Эти уязвимости могли бы позволить атакующим получить доступ к памяти ядра, раскрыть физические адреса памяти и обойти модель разрешений Android. - ARM оперативно исправила эти проблемы, но патчи еще не достигли затронутых устройств Android. - Производителям необходимо приоритетно проводить своевременное исправление, чтобы минимизировать "разрыв в исправлениях" и защитить пользователей. - Project Zero тестирует патчи на эффективность и может сообщать о последующих ошибках или пропущенных исправлениях. - Компании должны мониторировать источники upstream и предоставлять полные патчи пользователям как можно скорее. - Производители и конечные пользователи должны как можно скорее применять патчи, чтобы минимизировать уязвимости.
Данный документ описывает цепочку эксплуатации из трех уязвимостей, нацеленную на устройства Samsung, обнаруженную в конце 2020 года. Первая уязвимость позволяла произвольное чтение и запись файлов через провайдер буфера обмена, что использовалось для записи и запуска вредоносного файла ELF. Вторая уязвимость утекала адреса ядра через настраиваемую функцию ведения журнала Samsung, обходя KASLR. Третья уязвимость представляла собой использование после освобождения в драйвере Display Processing Unit, позволяя произвольному чтению и записи ядра. Цепочка эксплуатации использовала приложение Text-to-Speech Samsung для получения привилегий системы и драйвер GPU Mali для манипуляции кучей. Samsung исправила эти уязвимости в марте 2021 года. Документ подчеркивает важность образцов эксплуатации в дикой природе для понимания техник атакующих и улучшения защитных мер. Он также обсуждает обязательство Samsung по публичному раскрытию случаев эксплуатации уязвимостей в дикой природе. Анализ показывает, как эксплуатация использовала специфические настройки и драйверы Samsung, подчеркивая безопасностные последствия модификаций Android, проведенных производителями устройств.
Стандартная библиотека Java скрывает JIT-компилятор для обработки небезопасных программ XSLT. Это уязвимость, CVE-2022-34169, была вызвана ошибкой усечения целого числа в JIT-компиляторе. Она позволяет выполнять произвольный код в веб-приложениях на основе Java и провайдерах удостоверений, поддерживающих единый вход SAML.XML-цифровые подписи широко используются в SAML, стандарте для аутентификации пользователей в веб-приложениях. SAML включает обмен XML-документами между провайдером услуг (приложением) и провайдером удостоверений (IdP). XML-цифровые подписи обеспечивают целостность этих документов.Чтобы проверить XML-цифровые подписи, приложение должно запускать управляемые атакующим преобразования на управляемом атакующим вводе. Одним из таких преобразований является XSLT, мощный язык программирования XML.Реализация XSLT в Java использует JIT-компилятор для выполнения программ XSLT. Однако в этом JIT-компиляторе была ошибка усечения целого числа, которая могла быть эксплуатирована для получения произвольного выполнения кода.Уязвимость была исправлена в июле 2022 года для OpenJDK и в сентябре 2022 года для Apache BCEL. Хотя эта конкретная проблема решена, исследователи ожидают похожих уязвимостей в SAML из-за внутренней сложности валидации XML-цифровых подписей.Это уязвимость подчеркивает существование уязвимостей языка, безопасного для памяти, несмотря на меньшую частоту по сравнению с проблемами безопасности памяти в кодовых базах C или C++.Процесс валидации XML-цифровых подписей состоит из двух этапов: валидации ссылок и валидации подписи. В Java валидация подписи выполняется перед валидацией ссылок, что позволяет атакующим обойти требования валидации подписи.Преобразования XSLT могут быть встроены в XML-цифровые подписи, требуя от верификатора запуска программы XSLT на ссылочных XML-данных. Это открывает потенциальную поверхность атаки для внешних атакующих.Реализация валидации XSLT в Java вызывает библиотеку Apache BCEL, которая содержит уязвимый JIT-компилятор. Эта уязвимость могла быть эксплуатирована в приложениях Java, которые полагаются на SAML для аутентификации.