关键漏洞信息 描述 漏洞类型: 堆使用后释放 (Heap-use-after-free)。 原因: 在Lily解释器中,当 尝试访问一个指向 源缓冲区的字符串指针时,该缓冲区刚刚被 函数中的 操作释放或移动。 环境 操作系统: Linux x86_64 编译器: Clang 构建配置: 发布模式,启用了Asan 漏洞详细信息 目标: Lily (jcogar/lily) 漏洞类型: CWE-416: 使用后释放 受影响函数: 位置: (使用) / (通过 释放) 根本原因分析: 1. 解析器处理名为 的表达式,可能持有指向当前令牌文本的指针,该文本位于 源缓冲区中。 2. 逻辑触发 ,其调用 读取更多输入。 3. 调用 ,如果该行很长或缓冲区已满,则调用 。 4. 调用 ,导致该内存块的更改时,原始缓冲区被释放。 5. 控制流返回到 ,其继而调用 使用原始(现在是悬空)指针进入旧缓冲区。 还原步骤 1. 使用发布优化和Asan启用的方式构建Lily。 2. 运行包含崩溃文件 : ASAN报告