系统:运行中
← 返回所有攻击
RESEARCH MEDIUM NEW

Antaeus:以仓库上下文锚定 LLM 推理来发现逻辑漏洞

2026 年 7 月 1 日的一篇论文将 LLM 推理锚定在完整的仓库上下文中,以发现访问控制与信息暴露类逻辑漏洞——在前沿智能体最多找到 4 个的情况下检出 28 个中的 15 个。

2026-07-05 // 6 min affects: llm-vulnerability-detectors, coding-agents, opus-4.8, gpt-5.4, c-cpp-codebases

What is this?

2026 年 7 月 1 日,Michele Armillotta、Nicolò Romandini、Rebecca Montanari 与 Lorenzo Cavallaro 发表了 Antaeus: Hunting Repository-Level Logic Vulnerabilities via Context-Grounded LLM Reasoning(arXiv:2607.01138)。这是一项防御性工具研究,而非攻击:一条在大型 C 与 C++ 代码库中检出逻辑漏洞——访问控制缺陷与敏感信息暴露——的流水线,其做法是将语言模型的推理锚定在其所处的整个仓库中,而非孤立的单个函数中。

逻辑漏洞是传统工具最难处理的一类。内存安全缺陷表现为非法访问,数据流缺陷可表示为从源到汇的受污染传播,但逻辑漏洞是应用自身约定所要求的某项检查的缺失。作者的引导性案例是 libvirt 中 2020 年的一处访问控制缺陷:一个配置来宾代理超时的公共入口点逐行来看都正确,却缺少了唯一一处只读守卫,于是一个只读客户端可将该超时设为零并引发拒绝服务。每一行单独看都无害;漏洞存在于仓库的信任模型之中。论文的核心发现是:即便前沿智能体模型在此也力不从心,而结构化的上下文锚定弥合了其中大部分差距。

How it works

Antaeus 以仓库规模分四个阶段运行。优先级筛选首先剪枝至仅保留 C/C++ 文件,用宽泛的关键词启发式仅保留涉及授权、访问控制、信任边界或配置的函数,然后将每个留存函数压缩为其签名及其调用的被调函数。一个智能体模型对这些紧凑表示进行排序,将进入详细分析的函数数量约减少 29 至 33 倍。

上下文锚定随后为评判一个被优先处理的函数构建所需证据:局部增强(确定每一行含义的类型、宏、常量以及被调函数体)加上仓库级视图——应用的用途、它所中介的资源以及信任边界的位置。结构化推理要求模型指出函数中对安全敏感的汇点,推导每个汇点安全执行所需的安全条件,并检查这些条件是否在局部得到满足。最后,对比验证——一个基于嵌入的阶段——剪除仅反映项目普遍规范而非独特违规的发现,工具随后报告汇点、被违反的条件及支撑证据。

Why it matters

在取自仓库级 CVE 数据集的 28 个真实仓库上评估(12 个信息暴露案例、16 个访问控制案例,每个都以其完整项目作为真值),Antaeus 用一个前沿模型检出并解释了 28 个中的 15 个漏洞,用另一个模型检出 12 个,并在一个更新的模型版本上再次复现 15 个。所有基线配置——单函数 LLM 提示,以及在原始与预排序仓库上自主运行的智能体扫描器——都止步于 28 个中的 4 个。智能体基线之所以保持较低误报,主要靠检查更少的代码:即便给它相同的已排序函数集,它仍在内部收缩搜索,因而产出更多虚假发现,而非触及真正的缺陷。启示在于:一次简单的”智能体,去审计这个仓库”并不构成完整的逻辑漏洞审查;召回来自对已优先代码的穷尽分析与上下文锚定,而非仅靠更聪明的模型。

Defenses

对防御者而言,实践启示很具体。不要把自主智能体的仓库扫描当作逻辑漏洞的覆盖——本研究中的智能体会悄悄限制其检查的代码量。优先选择其输出会指明汇点、具体未满足的安全条件及证据的工具,因为正是这种结构使分诊变得可行、使发现可操作,而非一条含糊的告警。针对底层漏洞类别,应在每个公共入口点与信任边界强制访问控制不变量(对每个改变状态的操作施加只读或权限检查),审计跨越边界者是否造成敏感信息暴露,并将项目的安全不变量明确写下以便机械化校验。最后,请正视其双重用途:提升防御召回的同一套上下文锚定,也会增强进攻性发现,因此交付大量 C/C++ 代码的团队应尽早采用这些方法,以在攻击者之前完成修复。

Status

Antaeus 是一个研究原型。未发布任何利用代码或武器化工具;该工作是针对已知且已修补缺陷对检测流水线的评估。

项目详情
发表arXiv:2607.01138,2026 年 7 月 1 日
类型防御性检测框架 + 评估(未发布利用代码)
范围C/C++ 中的仓库级逻辑漏洞(CWE-284 访问控制缺陷、CWE-200 敏感信息暴露)
结果检出并解释 15/28;最强基线 4/28
示例 CVECVE-2020-10701(libvirt 只读访问控制缺陷)

Sources