Headline
CVE-2023-27590: Stack-based buffer overflow when parsing GDB registers profile files
Rizin is a UNIX-like reverse engineering framework and command-line toolset. In version 0.5.1 and prior, converting a GDB registers profile file into a Rizin register profile can result in a stack-based buffer overflow when the name, type, or groups fields have longer values than expected. Users opening untrusted GDB registers files (e.g. with the drpg or arpg commands) are affected by this flaw. Commit d6196703d89c84467b600ba2692534579dc25ed4 contains a patch for this issue. As a workaround, review the GDB register profiles before loading them with drpg/arpg commands.
Affected versions
<=v0.5.1
Impact
Converting a GDB registers profile file into a Rizin register profile can result in a stack-based buffer overflow when the name, type or groups fields have longer values than expected. Users opening untrusted GDB registers files (e.g. with the drpg or arpg commands) are affected by this flaw.
Patches
#3422
d619670
Workarounds
Review the GDB register profiles before loading them with drpg/arpg commands.
References
char name[16], groups[128], type[16];
ret = sscanf(ptr, " %s %d %d %d %d %s %s", name, &number, &rel,
#3422