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