---
source: arxiv
url: https://arxiv.org/abs/2605.03956v1
published_at: '2026-05-05T16:39:29'
authors:
- Shravya Kanchi
- Xiaoyan Zang
- Ying Zhang
- Danfeng Yao
- Na Meng
topics:
- code-intelligence
- software-security
- llm-agents
- test-generation
- supply-chain-security
- java
relevance_score: 0.78
run_id: materialize-outputs
language_code: zh-CN
---

# Generating Proof-of-Vulnerability Tests to Help Enhance the Security of Complex Software

## Summary
## 摘要
PoVSmith 为依赖存在漏洞库的 Java 应用生成 JUnit 证明漏洞测试。它使用编码代理查找可达的有漏洞 API，编写测试，运行测试，修复失败，并让大语言模型判断测试是否触发了漏洞。

## 问题
- 开发者需要可执行的 PoV 测试，来判断某个依赖 CVE 是否会影响自己的应用。
- 手工编写 PoV 测试很难，因为利用链必须经过应用代码、库 API、构建设置和运行时约束。
- 论文与先前工作的对比显示，这类任务的现有工具大多失败。

## 方法
- PoVSmith 以一个有漏洞的库版本和一个调用该库的应用作为起点。
- 它提示 Codex 查找直接或间接调用有漏洞库 API 的应用公开方法，然后记录调用路径。
- 对每条调用路径，它都会把有漏洞的 API、CVE 或问题编号、受影响的库版本、源方法、调用路径，以及一个库级利用测试样例，一起提供给 Codex。
- Codex 根据构建和执行反馈编写并修改 JUnit 测试，最多进行 5 轮修复。
- 另一个基于 GPT 的评估器读取生成的测试以及构建和执行日志，判断测试是否证明了该漏洞。

## 结果
- 评估使用了 33 对 Java App-Lib 组合，覆盖 29 个 Maven 项目、3 个 Gradle 项目和 1 个纯 Java 项目中的 20 条漏洞记录。
- PoVSmith 找到了 158 个独特的应用层公开入口点，它们会调用有漏洞的库 API；其中 152 个正确，准确率为 96%。
- 它根据正确的调用路径生成了 152 个测试；其中 141 个成功编译。
- 152 个生成测试中有 84 个触发了漏洞，成功率为 55%。
- 论文说，PoVSmith 生成的可触发漏洞测试更多，因此优于先前基于 LLM 的方法，但摘要片段没有给出基线数量。
- 作者基于这些证明此前未报告漏洞的测试提交了 6 个拉取请求和 6 个 CVE 申请。

## Problem

## Approach

## Results

## Link
- [https://arxiv.org/abs/2605.03956v1](https://arxiv.org/abs/2605.03956v1)
