关键信息总结 漏洞类型 Assertion Failure 影响函数 源文件 行号 204 断言 机制和根本原因 根本原因: 在处理包含无效Unicode转义序列的畸形JSON输入时,JSON解析和序列化之间存在不一致。 漏洞表现: 1. 输入处理阶段: 包含无效Unicode序列的畸形JSON输入被 解析器处理。 2. 语法错误检测: 解析器在输入字符串第6列检测到 语法错误。 3. 测试套件执行: 调用 函数验证解析一致性。 4. 解析验证: 测试框架尝试验证期望和重新解析的JSON值是否相等。 5. 断言失败: 由于解析不一致,断言在第204行失败。 6. 程序终止: 断言失败导致SIGABRT信号和程序终止。 报告 错误信息: 堆栈跟踪: 提供了详细的堆栈跟踪信息,显示了从 到 的调用链。 概念证明 触发条件: 处理提供的畸形JSON文件可以触发漏洞。 POC下载链接: Google Drive Link 再现步骤 1. 使用调试符号编译 。 2. 执行 。 3. 程序将在测试套件验证逻辑中因断言失败而崩溃。 影响版本 JQ version 1.6 和最新主分支。 致谢 Xudong Cao (UCAS) Yuqing Zhang (UCAS, Zhongguancun Laboratory)