CSSA 独家预警9.8 超危
QuickJS引擎通过处理畸形字节码触发越界写入导致堆内存破坏与服务中断
漏洞源于字节码反序列化函数在解析闭包变量计数字段时存在符号扩展处理缺陷,攻击者可构造恶意序列化的字节码输入触发有符号整型溢出,导致后续内存分配计算结果异常缩小。当宿主环境调用公开的反序列化接口读取该畸形数据后,底层堆内存分配器将按错误尺寸申请过小空间,随后在填充函数头结构与执行内存拷贝操作时发生越界写入行为。该缺陷具备网络可达性特征且无需身份认证即可利用,成功触发后将直接破坏进程堆内存布局,造成目标服务崩溃或潜在的控制权劫持风险。
组件
QuickJS是一款轻量级且可嵌入的JavaScript引擎,其架构采用单文件设计并遵循ECMAScript规范,核心功能涵盖字节码编译、即时执行与对象序列化反序列化。该组件通过提供标准化的API接口集成至各类宿主环境中,旨在实现脚本解析、沙箱隔离及动态代码执行,广泛应用于网络爬虫、自动化测试与嵌入…
类型
Out-of-bounds Write (CWE-787)
仓库
github.com/bellard/quickjs · Star 10915
处置建议
- 建议开发人员在解析外部数据结构时严格实施边界校验机制,对长度与计数字段采用无符号类型统一处理,并在执行内存分配运算前增加溢出检测逻辑。同时应引入安全的整数转换函数替代隐式类型强制转换,确保分配请求值与实际写入需求保持一致,从根本上阻断因算术回绕引发的越界访问隐患。


