Capstone — это каркас для разборки. В версии 6.0.0-Alpha9 и более ранних версиях декодеры с плавающей запятой Arch/SH/SHDisassembler.c SH компании Capstone, такие как opFADD, opFMUL и opFSUB, вызывают set_reg() и set_reg_n() с использованием sh_info.op.op_count без проверки массива операндов [] фиксированного размера. Повторяющиеся созданные инструкции, обработанные с помощью cs_disasm_iter() или cs_disasm() с CS_ARCH_SH, CS_MODE_SH2A или CS_MODE_SH4A, CS_MODE_SHFPU и CS_OPT_DETAIL, могут увеличить счетчик операндов сверх 176-байтового выделения sh_info и выполнить запись переполнения четырехбайтового буфера кучи.
Повреждение может привести к сбою процесса и сделать возможным выполнение кода в зависимости от структуры кучи. Эта проблема исправлена в версии 6.0.0-Alpha10.
Показать оригинальное описание (EN)
Capstone is a disassembly framework. In 6.0.0-Alpha9 and earlier, Capstone's arch/SH/SHDisassembler.c SH floating-point decoders such as opFADD, opFMUL, and opFSUB call set_reg() and set_reg_n() using sh_info.op.op_count without checking the fixed-size operands[] array. Repeated crafted instructions processed through cs_disasm_iter() or cs_disasm() with CS_ARCH_SH, CS_MODE_SH2A or CS_MODE_SH4A, CS_MODE_SHFPU, and CS_OPT_DETAIL can increment the operand count beyond the 176-byte sh_info allocation and perform a four-byte heap buffer overflow write. The corruption can crash the process and may enable code execution depending on heap layout. This issue is fixed in version 6.0.0-Alpha10.
Характеристики атаки
Последствия
Строка CVSS v4.0