Уязвимость путаницы типов
Что такое Уязвимость путаницы типов?
Уязвимость путаницы типовОшибка безопасности памяти, при которой код обращается к объекту через тип, несовместимый с реальной аллокацией, часто давая произвольное чтение, запись или выполнение.
Уязвимость путаницы типов возникает, когда программа читает или записывает память через указатель или ссылку с задекларированным типом, отличающимся от реального типа объекта. Типичные причины — ошибочные downcast'ы, неверная обработка полиморфизма, спекулятивные оптимизации JIT, предполагающие стабильную форму объекта, которую злоумышленник может изменить. Когда среда выполнения трактует структуру как неверный тип, методы, vtable, поля длины и встроенные данные интерпретируются неправильно, давая атакующему контролируемые примитивы чтения/записи, нередко переходящие в RCE. Часто эксплуатируются движки JavaScript (V8, JSC) и рендереры браузеров, регулярно на Pwn2Own. Защита — сильная система типов, проверки во время выполнения, песочница и языки с безопасной памятью.
● Примеры
- 01
CVE-2021-30551: путаница типов в V8, эксплуатация в качестве 0-day против Chrome.
- 02
C++ static_cast вместо dynamic_cast, что позволяет запись в посторонний объект.
● Частые вопросы
Что такое Уязвимость путаницы типов?
Ошибка безопасности памяти, при которой код обращается к объекту через тип, несовместимый с реальной аллокацией, часто давая произвольное чтение, запись или выполнение. Относится к категории Безопасность приложений в кибербезопасности.
Что означает Уязвимость путаницы типов?
Ошибка безопасности памяти, при которой код обращается к объекту через тип, несовместимый с реальной аллокацией, часто давая произвольное чтение, запись или выполнение.
Как работает Уязвимость путаницы типов?
Уязвимость путаницы типов возникает, когда программа читает или записывает память через указатель или ссылку с задекларированным типом, отличающимся от реального типа объекта. Типичные причины — ошибочные downcast'ы, неверная обработка полиморфизма, спекулятивные оптимизации JIT, предполагающие стабильную форму объекта, которую злоумышленник может изменить. Когда среда выполнения трактует структуру как неверный тип, методы, vtable, поля длины и встроенные данные интерпретируются неправильно, давая атакующему контролируемые примитивы чтения/записи, нередко переходящие в RCE. Часто эксплуатируются движки JavaScript (V8, JSC) и рендереры браузеров, регулярно на Pwn2Own. Защита — сильная система типов, проверки во время выполнения, песочница и языки с безопасной памятью.
Как защититься от Уязвимость путаницы типов?
Защита от Уязвимость путаницы типов обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Уязвимость путаницы типов?
Распространённые альтернативные названия: Неверный cast, Ошибка несоответствия типов.
● Связанные термины
- vulnerabilities№ 1193
Использование после освобождения
Ошибка безопасности памяти, при которой программа продолжает использовать память после её освобождения, часто позволяя атакующему управлять состоянием объектов и перехватывать выполнение.
- vulnerabilities№ 667
Повреждение памяти
Обобщающий термин для уязвимостей, при которых программа пишет за пределы предполагаемой памяти, нарушая типовую безопасность, поток управления или целостность данных.
- appsec№ 564
JIT-распыление
Эксплуатационная техника, использующая JIT-компиляторы для размещения выбранных атакующим исполняемых байтов внутри легально сгенерированных исполняемых страниц памяти.
- appsec№ 129
Песочница браузера
Слой изоляции уровня ОС, ограничивающий рендерер и вспомогательные процессы браузера, чтобы скомпрометированный веб-код не мог читать файловую систему или другие приложения.
- appsec№ 1075
Сайд-канал спекулятивного исполнения
Класс микроархитектурных уязвимостей: процессор утекает данные через кеши и предсказатели после спекулятивного исполнения инструкций по путям, которые не должны были выполняться.
- vulnerabilities№ 399
Эксплойт
Код, данные или метод, использующий уязвимость для вызова непредусмотренного поведения — выполнения кода, повышения привилегий или раскрытия информации.