CVE-2025-63744CVE-2025-63744是影响radare2 6.0.5及更早版本的一个中等严重程度安全漏洞。该漏洞存在于radare2的二进制分析框架中,具体位于bin_dyldcache.c文件的load()函数内。radare2是一款开源的逆向工程框架,广泛应用于二进制分析、漏洞研究、软件调试和安全审计领域。攻击者可以通过构造特制的dyldcache文件来触发该漏洞。当radare2尝试解析和加载恶意制作的dyldcache文件时,由于load()函数中存在空指针解引用问题,程序将遭遇 segmentation fault 并崩溃。此漏洞虽然不直接导致远程代码执行,但能够造成目标应用程序的拒绝服务状态,对于依赖radare2进行实时分析的安全研究人员和逆向工程师而言,可能造成工作中断和数据丢失。鉴于radare2在安全社区的高使用率,该漏洞对持续集成环境和自动化分析管道的影响尤为显著。
该漏洞的根本原因在于radare2的bin_dyldcache.c文件中load()函数对dyldcache格式文件的解析逻辑存在缺陷。具体而言,当处理特制的dyldcache文件时,函数未能正确验证指针的有效性就直接进行解引用操作,导致空指针访问违例(NULL pointer dereference)。在C/C++编程中,空指针解引用是一种常见的安全缺陷,通常发生在以下情况:1) 指针未被初始化或被显式设置为NULL;2) 内存分配失败返回NULL但代码未检查;3) 释放内存后指针未置NULL产生悬空指针。在本漏洞中,攻击者构造的dyldcache文件可能包含畸形的数据结构或特定的偏移量,使得解析过程中的某个关键指针被设置为NULL。随后当代码尝试通过该NULL指针访问成员变量或调用函数时,将触发CPU的保护机制,导致进程崩溃。攻击者只需诱导用户使用radare2打开恶意文件即可触发漏洞,无需特殊权限或用户交互之外的额外条件。