CVE-2026-9541Squirrel 3.2及之前版本中存在一处安全漏洞。该漏洞位于Cnut File Handler组件的`squirrel/sqobject.cpp`文件内的`ReadObject`函数。由于缺乏对输入数据的严格校验,攻击者可通过本地访问权限构造恶意数据,触发堆缓冲区溢出。目前相关利用代码已公开,但项目方尚未做出响应,建议用户密切关注官方动态。
该漏洞的根本原因在于Squirrel库处理Cnut文件格式的组件Cnut File Handler中,`sqobject.cpp`文件的`ReadObject`函数存在逻辑缺陷。在解析对象数据时,该函数未对从文件中读取的长度字段进行充分的有效性检查(特别是负值或过大的正值)。攻击者可以精心构造一个包含负长度值的畸形Cnut文件。当程序调用`ReadObject`处理该文件时,由于负数在内存运算或类型转换中的特性,可能导致堆分配的内存大小异常(例如分配极小内存或未分配)。随后,程序执行数据拷贝操作,将大量数据写入该异常的堆缓冲区,从而触发堆缓冲区溢出。此攻击需要本地访问权限,且无需用户交互,成功利用可导致信息泄露、权限提升或拒绝服务。