CVE-2025-13397CVE-2025-13397是mrubyc 3.4及之前版本中存在的一个空指针解引用(null pointer dereference)安全漏洞。该漏洞位于内存分配函数mrbc_raw_realloc中,具体在src/alloc.c文件中。攻击者可以通过精心构造的输入参数,使ptr指针被操控为NULL值,从而在调用realloc时触发空指针解引用,导致程序崩溃或产生未定义行为。mrubyc是一个轻量级的Ruby实现,专为嵌入式系统设计,广泛应用于物联网设备和资源受限的环境中。由于该漏洞需要本地访问权限且利用难度较高,CVSS评分仅为3.3,属于低危级别。然而,在某些对可用性要求较高的嵌入式应用场景中,程序意外崩溃仍可能造成服务中断等负面影响。建议开发者及时更新到修复版本,并实施适当的安全措施以防止潜在攻击。
该漏洞的核心问题在于mrbc_raw_realloc函数对传入的ptr参数缺乏有效的空指针检查。在C语言中,realloc函数的第一个参数应该是有效的堆内存指针或NULL。如果攻击者能够操控ptr参数使其指向NULL地址,当函数执行realloc(ptr, size)调用时,标准C库的realloc实现会尝试解引用这个空指针,导致程序崩溃。漏洞影响的是mrubyc的内存管理子系统,该系统负责Ruby对象的内存分配和回收。在mrubyc的嵌入式应用场景中,攻击者可能通过输入特定的Ruby代码或构造异常的对象状态来触发这一漏洞。虽然这是一个本地攻击向量,但攻击者只需要低权限即可实施攻击,无需用户交互。该漏洞已被官方确认,修复补丁为commit 009111904807b8567262036bf45297c3da8f1c87,开发者应在内存分配函数中添加对ptr参数的合法性检查。