关键信息 漏洞描述 漏洞类型: 双重释放 (Double Free) 影响软件: GNU Bison 问题: 在处理恶意语法文件时,Bison 的代码扫描缓冲区管理系统触发双重释放错误,导致堆内存损坏和程序崩溃。 技术分析 堆栈跟踪: 提供了详细的堆栈跟踪信息,显示了错误发生的具体位置。 根本原因分析: - 错误发生在 函数中。 - 触发点在 函数中。 - 错误消息: "double free or corruption (out)"。 内存生命周期问题 1. 缓冲区创建: 在 中创建代码扫描缓冲区。 2. 多次释放: 同一块内存被多次通过 释放。 3. 堆损坏: glibc 检测到堆结构损坏并终止程序。 调用链分析 1. -> -> 2. -> -> 3. 4. 5. 双重释放检测 -> -> 概念验证 (PoC) 文件: 提供了一个 PoC 文件用于复现漏洞。 复现步骤: 1. 执行 2. 观察双重释放错误和程序崩溃。 3. 使用 Valgrind 进行验证。 漏洞确认 通过 GDB 堆栈跟踪、glibc 实现的堆损坏检测、不同的调用路径以及可复现的内存损坏症状确认了该漏洞。 CVE 编号 CVE-2022-8734 已与该问题关联。