CveTest
用于复现 Node.JS V0.10.31 v8 反向移植 CVE-2013-6668 崩溃的测试用例。
测试调用 SQL 存储过程("GetSomething")从 "SQLDB" 数据库中的表("Table1")检索数据。当返回超过 52 行,并且在多次进行相同调用后,会发生崩溃。
环境
- Windows 7 64-bit
- MS SQL 2005
- Node.JS V0.10.31 x64
- tedious node 模块 V1.4.3 或更早版本
各种 Node 版本的测试
- Release 模式 node:脚本意外退出,没有打印任何显式错误。
- Debug 模式 node:可获得断言和堆栈跟踪。
- Debug 模式 Node 应用了 Node.JS Issue #8208 中提出的临时补丁后:仍然如上崩溃。
- Release 模式正常。
- 遇到的断言位于 HInstruction::Verify() 中,该函数仅在 DEBUG 构建中可用。因此,备用的 release 构建代码似乎不受 CVE 补丁的影响。
- Node V0.10.31 搭配来自 V0.10.30 的 deps/v8:无崩溃,运行正常。
因此,问题似乎是由 v8 的 CVE-2013-6668 补丁反向移植引起的。
可能相关