flawopen.com/Incidents/angle-cross-platform-zero-day-december-2025
CVE-2025-14174: ошибка ANGLE в Chrome и ссылка Apple на CVE
Google подтвердил эксплуатацию ANGLE в Chrome. Apple использует CVE для отдельной ошибки инициализации памяти WebKit.
Представьте, что при переписывании формы человек выходит за границы поля и пишет в следующую запись: это иллюстрирует доступ за пределами буфера. В реестре один номер также может повторно использоваться для разных записей; одинаковая метка не доказывает одинаковые дефекты.
Ключевые понятия и термины
ANGLE- Almost Native Graphics Layer Engine — открытая библиотека Google, переводящая вызовы OpenGL ES и WebGL в нативные API, такие как Metal, Direct3D и Vulkan.
Metal-бэкенд- Часть ANGLE для API Metal. Google связывает ошибку с ANGLE в Chrome для Mac, но не называет функцию или механизм исправления.
Выход за границы (CWE-787)- Выход за границы (
CWE-787): операция обращается к памяти за пределами буфера.CWE-787точнее обозначает запись за границы; Google не раскрыл точную операцию или причину. Проверяемая арифметика- Целочисленные операции, сообщающие о переполнении вместо тихого заворачивания, например base::CheckedNumeric в Chromium и ANGLE.
Zero-day- Уязвимость нулевого дня эксплуатируется до выпуска исправления. Google подтвердил эксплуатацию проблемы ANGLE в Chrome. Apple отдельно описала целевые атаки с проблемами WebKit в бюллетене iOS 26.2.
Связи со стандартами
- Ссылка CWE для слабого места, описанного в этом руководстве: CWE-787
- CISA KEV — добавлено 2025-12-12 — CVE-2025-14174
Хронология инцидента
Google выпускает Chrome 143.0.7499.110 для macOS и сообщает, что для ошибки в ANGLE существует эксплойт в дикой природе (задача Chromium 466192044).
В бюллетене Apple CVE-2025-14174 относится к инициализации памяти WebKit, а CVE-2025-43529 отдельно относится к повреждению памяти WebKit. Apple связывает второй отчёт с возможной целевой эксплуатацией; это не доказывает общую причину с ANGLE в Chrome. CISA добавила CVE-2025-14174 в KEV.
Пошаговый сценарий атаки
Подготовленная страница достигает графического слоя
Запись CVE описывает специально подготовленную HTML-страницу, вызывающую проблему ANGLE в Chrome для Mac. Вектор CVSS требует действия пользователя, то есть жертва должна открыть веб-контент под контролем атакующего.
ANGLE переводит вызовы в Metal
Google указывает ANGLE как уязвимый компонент Chrome. Публичный бюллетень не называет функцию и не утверждает, что WebKit использует тот же уязвимый код.
Идёт доступ к памяти вне буфера
Google сообщает о выходе за границы памяти, но не уточняет чтение это или запись, затронутый буфер или причину. Код ниже — общий пример, а не исходный код ANGLE и не реконструкция CVE.
Использование в целевых атаках
Google подтвердил эксплуатацию CVE-2025-14174. Apple отдельно сообщила о целевой эксплуатации проблем WebKit и также использует этот CVE для записи об инициализации памяти WebKit. Бюллетени не устанавливают общую цепочку между Chrome и WebKit.
Исходный код: Уязвимый vs Защищённый вариант
Google не раскрыл причину на уровне функции или детали исправления. Этот общий пример на C++20 проверяет смещение и сравнивает длину с оставшейся ёмкостью вычитанием, чтобы избежать переполнения. Это не воспроизведение CVE и не фактическое исправление ANGLE.
// Только общий пример; это не исходный код ANGLE и не реализация CVE-2025-14174.
bool copyRange(std::span<std::byte> destination,
std::size_t offset,
std::span<const std::byte> source)
{
std::copy(source.begin(), source.end(), destination.begin() + offset);
return true;
}
// Только общий пример; это не исходный код ANGLE и не патч для CVE-2025-14174.
bool copyRange(std::span<std::byte> destination,
std::size_t offset,
std::span<const std::byte> source)
{
if (offset > destination.size() ||
source.size() > destination.size() - offset) {
return false;
}
std::copy(source.begin(), source.end(), destination.begin() + offset);
return true;
}
Чек-лист по защите системы для инженеров
- ✓Обновите Chrome для Mac до версии 143.0.7499.110 или новее; в текущих средах установите последнюю поддерживаемую версию.
- ✓Составьте карту общих библиотек разбора и графики (ANGLE, FreeType, libwebp, libxml2) во всех своих продуктах и подпишитесь на их бюллетени безопасности, а не только на бюллетени каждого браузера.
- ✓Требуйте проверяемой арифметики (base::CheckedNumeric, std::ckd_mul в C23 или checked_mul в Rust) для каждого размера буфера, вычисляемого из управляемых вызывающей стороной размеров, и отмечайте непроверенные умножения на ревью кода.
- ✓Фаззите в CI пути загрузки текстур и буферов с экстремальными и нулевыми размерами под AddressSanitizer, чтобы копирование за границы проваливало тесты до выпуска.
- ✓Отслеживайте бюллетень ANGLE для Chrome отдельно от записей WebKit Apple: совпадение идентификаторов или дат не доказывает общую причину или цепочку эксплуатации.
Источники
- CVE-2025-14174 — запись CVE (ANGLE в Google Chrome для Mac)
- Google Chrome Releases — обновление стабильного канала для настольных систем (10 декабря 2025 г.)
- Apple — о содержимом обновления безопасности iOS 26.2 и iPadOS 26.2
- CISA — запись CVE-2025-14174 в каталоге Known Exploited Vulnerabilities
- ANGLE — репозиторий исходного кода Chromium