LLMBisect: Breaking Barriers in Bug Bisection with A Comparative Analysis Pipeline

📄 arXiv: 2510.26086v1 📥 PDF

作者: Zheng Zhang, Haonan Li, Xingyu Li, Hang Zhang, Zhiyun Qian

分类: cs.LG

发布日期: 2025-10-30


💡 一句话要点

LLMBisect:利用比较分析流水线打破Bug二分查找的壁垒

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: Bug二分查找 漏洞分析 大型语言模型 软件安全 提交信息 多阶段流水线 代码理解 比较分析

📋 核心要点

  1. 现有Bug二分查找方法依赖于不准确的假设,且未能充分利用提交信息中的漏洞相关信息。
  2. LLMBisect利用大型语言模型,通过多阶段流水线充分利用补丁信息,并比较候选提交以缩小范围。
  3. 实验表明,LLMBisect的准确率显著优于现有技术,提升超过38%,证明了多阶段流水线的有效性。

📝 摘要(中文)

Bug二分查找是一项重要的安全任务,旨在了解受Bug影响的软件版本范围,即识别引入Bug的提交(BIC)。然而,传统的基于补丁的二分查找方法面临几个重大障碍:例如,它们假设BIC和补丁提交修改相同的函数,但事实并非总是如此。它们通常只依赖于代码更改,而提交消息通常包含大量与漏洞相关的信息。它们还基于简单的启发式方法(例如,假设BIC初始化补丁中删除的行),并且缺乏对漏洞的任何逻辑分析。本文提出大型语言模型(LLM)能够打破现有解决方案的障碍,例如,理解补丁和提交中的文本数据和代码。与之前效果不佳的BIC识别方法不同,我们提出了一个全面的多阶段流水线,利用LLM来:(1)充分利用补丁信息,(2)在上下文中比较多个候选提交,(3)通过一系列向下选择步骤逐步缩小候选范围。在我们的评估中,我们证明了我们的方法比最先进的解决方案实现了显著更高的准确率,提高了38%以上。我们的结果进一步证实了全面的多阶段流水线是必不可少的,因为它比基于LLM的基线二分查找方法提高了60%的准确率。

🔬 方法详解

问题定义:论文旨在解决软件漏洞分析中的Bug引入提交(Bug-Introducing Commit, BIC)的定位问题。现有方法,如基于补丁的二分查找,存在假设不成立(BIC和补丁修改相同函数)、信息利用不足(忽略提交消息)以及缺乏逻辑分析等痛点,导致准确率较低。

核心思路:论文的核心思路是利用大型语言模型(LLMs)强大的代码理解和文本分析能力,构建一个多阶段的比较分析流水线。通过LLM对补丁信息和提交信息进行深度分析,并结合上下文进行比较,从而更准确地定位BIC。

技术框架:LLMBisect采用多阶段流水线架构,主要包含以下阶段: 1. 补丁信息提取:利用LLM提取补丁中的关键信息,包括修改的代码和相关的文本描述。 2. 候选提交筛选:根据提取的补丁信息,初步筛选出可能引入Bug的候选提交。 3. 上下文比较:利用LLM对候选提交进行上下文分析,比较它们与补丁之间的关联性。 4. 逐步缩小范围:通过一系列向下选择步骤,逐步缩小候选范围,最终确定BIC。

关键创新:LLMBisect的关键创新在于其综合利用LLM进行漏洞分析,并构建多阶段流水线进行比较分析。与现有方法相比,LLMBisect能够更全面地利用补丁信息和提交信息,并进行更深入的逻辑分析,从而提高BIC定位的准确率。

关键设计:论文中没有明确提及关键的参数设置、损失函数、网络结构等技术细节。但可以推断,LLM的选择和prompt的设计是影响性能的关键因素。此外,多阶段流水线中各个阶段的筛选策略和比较方法也需要精心设计。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,LLMBisect的准确率显著优于最先进的解决方案,提升超过38%。与基于LLM的基线方法相比,LLMBisect的多阶段流水线架构能够将准确率提高60%,充分证明了其有效性。

🎯 应用场景

LLMBisect可应用于软件安全漏洞分析、漏洞修复和软件质量保证等领域。通过自动定位Bug引入提交,可以加速漏洞修复过程,降低安全风险,并提高软件的整体质量。该研究成果对于提升软件安全性和可靠性具有重要意义。

📄 摘要(原文)

Bug bisection has been an important security task that aims to understand the range of software versions impacted by a bug, i.e., identifying the commit that introduced the bug. However, traditional patch-based bisection methods are faced with several significant barriers: For example, they assume that the bug-inducing commit (BIC) and the patch commit modify the same functions, which is not always true. They often rely solely on code changes, while the commit message frequently contains a wealth of vulnerability-related information. They are also based on simple heuristics (e.g., assuming the BIC initializes lines deleted in the patch) and lack any logical analysis of the vulnerability. In this paper, we make the observation that Large Language Models (LLMs) are well-positioned to break the barriers of existing solutions, e.g., comprehend both textual data and code in patches and commits. Unlike previous BIC identification approaches, which yield poor results, we propose a comprehensive multi-stage pipeline that leverages LLMs to: (1) fully utilize patch information, (2) compare multiple candidate commits in context, and (3) progressively narrow down the candidates through a series of down-selection steps. In our evaluation, we demonstrate that our approach achieves significantly better accuracy than the state-of-the-art solution by more than 38\%. Our results further confirm that the comprehensive multi-stage pipeline is essential, as it improves accuracy by 60\% over a baseline LLM-based bisection method.