Добро пожаловать на BlackSAMP - ФОРУМ

  • Приватные и секретные разделы доступны только зарегистрированным пользователям.

    Вся важная информация в нашем ТГ: t.me/gtablack

    На данном форуме запрещено публиковать контент нарушающий Российское законодательство, за это последует блокировка ФА.

Уязвимость Type Confusion в JavaScript-движках

Количество просмотров: 36

IlyaMarkinV

Редактор
Редактор
Регистрация
13 Июн 2025
Сообщения
14
Реакции
1
Баллы
3
Сегодня разберём сложную уязвимость — Type Confusion в движках V8 (Chrome), SpiderMonkey (Firefox) и JavaScriptCore (Safari). Это не просто баг, а полноценный RCE (Remote Code Execution) в браузере!





Что такое Type Confusion?
Это когда движок JS неправильно определяет тип объекта в памяти. В результате:
    • Можно читать/писать память за пределами выделенного буфера
    • Получать контроль над указателями (потенциальный RCE)
    • Обходить песочницу браузера

Почему это опасно?
Такие уязвимости используются в цепочках эксплойтов для 0-day атак (например, Pegasus spyware).




Реальный пример (CVE-2021-30551 в V8)

Шаг 1: Создаём "путаницу" типов

Код:
javascript
function triggerBug() {
  let float_arr = [1.1, 1.2, 1.3];
  let obj = {a: 42};
  
  float_arr[0] = obj; // Теперь массив содержит объект вместо числа!
}

Шаг 2: Читаем память через "сломанный" массив
Код:
javascript
let leaked_data = float_arr[1]; // Читаем 8 байт памяти как double!

Шаг 3: Пишем shellcode и получаем RCE
(Дальше идёт сложная цепочка для обхода защит)




Как этим пользуются хакеры?

  • 1. Находят баг через фаззинг (например, с помощью fuzzilli)
    2. Создают read/write примитивы для доступа к памяти
    3. Обходят защиту памяти (Pointer Compression в V8, CFG в Windows)
    4. Запускают шеллкод в контексте браузера




Как защититься?
Для пользователей:

    • Всегда обновляйте браузеры
    • Используйте строгий режим Content Security Policy

Для разработчиков:
    • Избегайте опасных оптимизаций в JS (например,
      Код:
      delete
      на массивах)
    • Включите все mitigations в V8:
    Код:
    bash
    chrome --js-flags="--untrusted-code-mitigations"




Почему это важно?
Такие уязвимости:
    • Используются государственными хакерами
    • Позволяют взламывать устройства через браузер
    • Часто остаются незамеченными месяцами


P.S. Это не теория — в 2023 такие баги находили в Chrome, Edge и Safari. Обновляйте браузеры!
 
Сверху Снизу