关键漏洞信息 漏洞概述 漏洞类型: 断言失败漏洞 受影响程序: Jasper (JasPer Image Processing Library) 崩溃类型: SIGABRT (Signal 6) 版本: 最新master分支 & jasper-1.902.3 根本原因: 断言失败在 函数中 触发条件: 使用无效的colwidth参数处理畸形的JPEG2000图像文件 技术分析 实际崩溃输出: GDB堆栈跟踪参考: - 程序接收到SIGABRT信号,断言失败发生在 - 调用链涉及多个函数,最终导致断言失败和程序终止 漏洞机制 失败断言: 在 中 位置: 根本原因分析: 1. 参数处理: Jasper处理带有空或无效值的 选项 2. 无效值传播: 空/畸形参数值被转换为0 3. 数学函数失败: 函数被调用时x=0,违反其前提条件 4. 断言失败: 函数期望x>0进行对数计算,断言失败 5. 程序终止: 断言失败触发SIGABRT和程序终止 易受攻击的代码上下文 复现步骤 命令行测试: 预期行为 命令将: 1. 开始JPEG2000编码过程 2. 处理空 参数作为0 3. 在编码期间调用 4. 触发断言失败在 5. 以SIGABRT和“Assertion POC_jasper_jpc_floorlog2_assertion_failure.jp2` 致谢 Xudong Cao (UCAS) Yuqing Zhang (UCAS, Zhongguancun Laboratory)