漏洞总结 1. 漏洞概述 这是一个 Use-After-Free (UAF) 漏洞。在 、 和 这三个函数中,当使用 扩展内部数组时,代码逻辑在从调用者提供的指针复制数据之前,先释放了旧的数组。如果调用者传入的指针实际上是从对应的 getter 函数(如 )获取的,就会发生内存别名(aliasing),导致在复制过程中访问已释放的内存区域。 2. 影响范围 受影响函数: , , 。 触发条件: 当调用者将 getter 函数返回的内部指针直接作为参数传递给对应的 setter 函数时触发。 3. 修复方案 修改内存管理逻辑,将旧数组的释放操作( )推迟到数据复制循环完成之后进行,从而避免在复制过程中访问已释放的内存。 4. POC/测试代码 截图中包含用于验证修复的测试代码( ),展示了如何构造触发该逻辑的场景: