Capstone — это каркас для разборки. До версии 6.0.0-Alpha9 общедоступный API `cs_insn_name()` Capstone пересылал идентификаторы инструкций, предоставленные вызывающей стороной, непосредственно в серверную часть выбранной архитектуры. Большинство бэкэндов проверяют идентификатор перед индексацией таблиц имен инструкций, но бэкэнды M68K и RISCV имеют отсутствующие или неполные проверки границ.
В дескрипторе Capstone, открытом для M68K или RISCV, недопустимый идентификатор инструкции, управляемый вызывающей стороной, может вызвать чтение за пределами границ и привести к сбою процесса. Продемонстрированное влияние — потеря доступности в приложениях или привязках, которые предоставляют поиск имени инструкции по ненадежным идентификаторам. Никакого выполнения кода или раскрытия данных не было продемонстрировано.
Версия 6.0.0-Alpha9 исправляет проблему.
Показать оригинальное описание (EN)
Capstone is a disassembly framework. Prior to version 6.0.0-Alpha9, Capstone's public `cs_insn_name()` API forwards caller-supplied instruction IDs directly to the selected architecture backend. Most backends validate the ID before indexing instruction-name tables, but the M68K and RISCV backends have missing or incomplete bounds checks. On a Capstone handle opened for M68K or RISCV, a caller-controlled invalid instruction ID can trigger an out-of-bounds read and crash the process. The demonstrated impact is availability loss in applications or bindings that expose instruction-name lookup to untrusted IDs. No code execution or data disclosure was demonstrated. Version 6.0.0-Alpha9 patches the issue.
Характеристики атаки
Последствия
Строка CVSS v3.1