---
source: arxiv
url: http://arxiv.org/abs/2604.10767v1
published_at: '2026-04-12T18:31:46'
authors:
- Yiheng Cao
- Yihao Chen
- Xin Hu
- Bihuan Chen
- Jiayi Deng
- Zhuotong Zhou
- Susheng Wu
- Yiheng Huang
- Xueying Du
- Xingman Chen
- Miaohua Li
- Xin Peng
topics:
- vulnerability-detection
- code-intelligence
- llm-reasoning
- static-analysis
- program-graphs
relevance_score: 0.88
run_id: materialize-outputs
language_code: zh-CN
---

# VulWeaver: Weaving Broken Semantics for Grounded Vulnerability Detection

## Summary
## 总结
VulWeaver 是一个基于 LLM 的漏洞检测器，先修复静态分析里被打断的语义，再让模型判断代码。它把增强的依赖图、更广的上下文提取和基于指南的提示结合起来，以提高准确率并减少脆弱的模式匹配。

## 问题
- 源代码漏洞检测会在静态分析构建不完整或带噪声的调用、控制流和数据依赖图时丢失真实语义，尤其是在反射、多态和全局定义附近。
- 许多学习方法和 LLM 系统只分析局部或单向切片，因此会漏掉跨过程和隐式上下文，例如净化器定义或全局配置。
- 直接的思维链提示容易抓住变量名和其他词汇线索，而不是程序行为，这会降低它在补丁代码和对抗性重命名场景中的可靠性。

## 方法
- VulWeaver 从 Joern 输出构建统一依赖图，在语句级合并调用、控制流和数据依赖关系。
- 然后它用一种神经符号方法增强这张图：确定性规则加上 LLM 推理，用来修复缺失或多余的语义，并明确处理 Java 的多态调用和反射调用，同时用 Tree-sitter 解析并加入全局节点。
- 在增强图的基础上，它为每个敏感 API 调用提取完整的漏洞上下文，把显式切片和普通切片会漏掉的隐式上下文结合起来，例如使用、定义和声明信息。
- 它把敏感 API 映射到漏洞类型，并使用带有专家编写的、按 CWE 细分的推理指南的元提示，让 LLM 按固定流程分析提取到的上下文。
- 它发起多次 LLM 查询并用多数投票稳定预测；知识库覆盖 102 种 CWE 类型。

## 结果
- 在 PrimeVul4J 上，VulWeaver 的精确率为 **0.81**，召回率为 **0.70**，F1 为 **0.75**。
- 在同一数据集上，它的 F1 比最佳的基于学习方法、基于 LLM 和基于代理的基线分别高 **23%**、**15%** 和 **60%**。
- 它的 VP-S 得分是 **0.58**，比最佳基线高 **164%**，说明它更能区分有漏洞代码和已修补代码。
- 在只做少量适配的 C/C++ PrimeVul 上，它达到 **F1 0.78**，并且仍然优于所有基线。
- 在一项针对对抗性标识符重命名的鲁棒性研究中，标准 CoT 提示在五个 LLM 上的 F1 下降了 **11% 到 39%**，VP-S 下降了 **44% 到 1,050%**；元提示把 F1 下降控制在 **0% 到 6%**，VP-S 下降控制在 **16%** 以内。
- 在真实使用中，VulWeaver 在 **9** 个 Java 项目中发现了 **26** 个真实漏洞，其中 **15** 个得到开发者确认，**5** 个分配了 CVE 编号；一次工业部署发现了 **40** 个已确认漏洞。

## Problem

## Approach

## Results

## Link
- [http://arxiv.org/abs/2604.10767v1](http://arxiv.org/abs/2604.10767v1)
