[Перевод] Эксплойтинг браузера Chrome, часть 3: анализ и эксплойт уязвимости CVE-2018-17463
Это третья и последняя часть серии статьей про эксплойтинг браузера Chrome. Основная задача этой серии заключалась в том, чтобы познакомить читателя с внутренним устройством браузера и погрузиться в тему эксплойтинга Chrome в Windows.
В первой части мы изучили внутреннюю работу JavaScript и V8. В том числе изучили объекты map и shape, а также рассмотрели методики оптимизации памяти, например, маркировку указателей и сжатие указателей.
Во второй части мы более глубоко исследовали конвейер компилятора V8. Изучили предназначение Ignition, Sparkplug и TurboFan в конвейере и рассмотрели такие темы, как байт-код V8, компиляция и оптимизация кода.
В этой части сосредоточимся на анализе и эксплойтинге уязвимости JIT-компилятора в TurboFan CVE-2018-17463. Эта уязвимость возникла из-за ненадлежащего моделирования побочных эффектов операции JSCreateObject на этапе понижающей оптимизации. Прежде чем мы приступим к эксплойтингу этого бага, нужно изучить фундаментальные примитивы эксплойтинга браузеров, такие как addrOf и fakeObj, а также узнать, как можно использовать этот баг для эксплойтинга type confusion.
Читать дальше →
В первой части мы изучили внутреннюю работу JavaScript и V8. В том числе изучили объекты map и shape, а также рассмотрели методики оптимизации памяти, например, маркировку указателей и сжатие указателей.
Во второй части мы более глубоко исследовали конвейер компилятора V8. Изучили предназначение Ignition, Sparkplug и TurboFan в конвейере и рассмотрели такие темы, как байт-код V8, компиляция и оптимизация кода.
В этой части сосредоточимся на анализе и эксплойтинге уязвимости JIT-компилятора в TurboFan CVE-2018-17463. Эта уязвимость возникла из-за ненадлежащего моделирования побочных эффектов операции JSCreateObject на этапе понижающей оптимизации. Прежде чем мы приступим к эксплойтингу этого бага, нужно изучить фундаментальные примитивы эксплойтинга браузеров, такие как addrOf и fakeObj, а также узнать, как можно использовать этот баг для эксплойтинга type confusion.
Читать дальше →
Источник: Хабрахабр
Похожие новости
- Права в Linux: chown/chmod, SELinux context, символьная/восьмеричная нотация, DAC/MAC/RBAC/ABAC
- Как запустить VLESS + Reality на старом Intel iMac с macOS Catalina 10.15.8
- Кто выпустил гончую. Ищем следы коллекторов BloodHound в логах Windows
- HTML во вложении — это программа. Почему почтовые фильтры его пропускают и как SOC его ловит
- Как СМИ рождают “хакеров” и как сам Глава группировки слил секретные методы DDoS
- Погосян Марго: В топ-4 рынка с маскотом
- Пентест с помощью ИИ в России и материалы для сертификации по безопасности ИИ
- Интеграция MULTIDIRECTORY и MULTIFACTOR: двухфакторная аутентификация в Kerberos
- Глухарь ESPшный — мемуары охотника
- Когнитивная эргономика в веб-дизайне: Как не отупеть от собственного интерфейса