CVE-2025-4919: Коррупция через... Заметка
RSS Zero Day Initiative - Блог

CVE-2025-4919: Коррупция через математическое пространство в Mozilla Firefox

Манфред Поль эксплуатировал уязвимость (CVE-2025-4919, ZDI-25-291) в компиляторе JavaScript IonMonkey Firefox на Pwn2Own Berlin 2025. Уязвимость находилась в функции ExtractLinearSum, используемой для упрощения линейных выражений. Эта функция неправильно обрабатывала математическое пространство Modulo, что приводило к проблемам с проверками границ. Функция TryEliminateBoundsCheck, использующая ExtractLinearSum, объединяла проверки границ без учета потенциальных переполнений целых чисел. Это позволяло обойти проверки границ в больших типизированных массивах. Эксплуатация этогоinvolved создание большого типизированного массива и манипуляцию индексами для вызова чтения или записи вне границ. Эксплойт использовал битовые операции, чтобы заставить добавления обернуться, вводя в заблуждение проверку границ. BigInt был использован для предотвращения оптимизаций компилятора, которые могли бы помешать эксплойту. Корневая причина уязвимости лежит в несовместном обработке математического пространства в различных местах вызова функции ExtractLinearSum. Похожие уязвимости могут существовать в других частях компилятора Ion, которые используют ExtractLinearSum для анализа циклов. Mozilla исправила уязвимость в Firefox 138.0.4. Эксплойт продемонстрировал опасность не проверенных операций с целыми числами в компиляторах JIT.
CdXz5zHNQW_sqeUCNKfYs.jpeg