CVE-2026-8261Squirrel脚本语言3.2及之前版本在`squirrel/sqobject.cpp`文件的`SQFunctionProto::Load`函数中存在堆缓冲区溢出漏洞。由于未正确验证输入数据,攻击者可诱导本地执行恶意脚本,导致堆内存溢出,进而引发应用程序崩溃或潜在代码执行。目前该漏洞利用代码已公开,官方尚未发布修复补丁。
该漏洞根源在于Squirrel 3.2及以下版本中`squirrel/sqobject.cpp`文件内的`SQFunctionProto::Load`函数。该函数负责加载函数原型数据,但在处理特定字节码格式或函数元数据时,未能对输入数据的长度进行严格校验。攻击者无需认证(PR:N)且无需用户交互(UI:N),只需在本地环境(AV:L)构造并加载特制的Squirrel脚本或字节码文件。当解析器执行到`Load`函数时,恶意数据会向堆缓冲区写入超出预分配大小的内容,导致堆缓冲区溢出。这种内存破坏行为可能覆盖相邻的关键内存结构(如堆元数据或函数指针),从而造成程序崩溃(拒绝服务)或在特定条件下实现本地任意代码执行。目前利用代码已公开,风险客观存在。