---
source: arxiv
url: http://arxiv.org/abs/2604.21111v1
published_at: '2026-04-22T21:52:58'
authors:
- Peter Mandl
- Paul Mandl
- "Martin H\xE4usl"
- Maximilian Auch
topics:
- vulnerability-detection
- software-supply-chain
- ground-truth-dataset
- osv
- security-evaluation
relevance_score: 0.61
run_id: materialize-outputs
language_code: zh-CN
---

# A Ground-Truth-Based Evaluation of Vulnerability Detection Across Multiple Ecosystems

## Summary
## 总结
这篇论文基于 OSV 构建了一个用于包漏洞检测的 ground-truth 数据集，并用它比较了 npm、PyPI、Maven 和 NuGet 上的工具。核心观点是，工具结果之所以不同，是因为数据源、标识符和版本范围处理方式不同，所以评估需要一个可复现的版本级参考。

## 问题
- 漏洞扫描器常常给出不同结果，因为漏洞数据来自不同数据库，而这些数据库的标识符、包映射和版本范围格式都不一样。
- 许多安全公告把受影响版本写成范围，工具会按各生态系统特定的规则解释这些范围，同一个包版本就可能得到不同答案。
- 目前没有一个稳定、被广泛接受的 ground truth，能明确说明哪些具体包版本有漏洞，这让工具评估很难复现。

## 方法
- 作者从 Open Source Vulnerabilities（OSV）数据库的固定快照中，为四个生态系统构建了一个 ground-truth 数据集：npm、PyPI、Maven 和 NuGet。
- 他们规范化了漏洞标识符，并把每条事实写成显式元组 `(ecosystem, component, version, vulnerability)`，而不是把漏洞保留为抽象的版本范围。
- 他们选择常用组件，从每个生态系统的注册表中收集一组有上限的近期稳定版本，并排除预发布版和开发版。
- 对每个具体包版本，他们查询 OSV，判断该精确版本是否受影响；每个返回的漏洞都会成为一条 ground-truth 记录。
- 他们还提供了一个开源重建工具，便于在更新后的 OSV 快照上重复同样的数据构建流程。

## 结果
- 论文声称，当漏洞检测系统在同一份 OSV 派生的 ground truth 上评估时，会出现系统性差异。
- 论文还声称，这个数据集通过把工具输出与显式的 `(e,c,v,u)` 元组匹配起来，可以进行确定性、可复现的比较。
- 研究覆盖了 4 个生态系统：npm、PyPI、Maven 和 NuGet。
- 文中分析的示例组件包括 `esbuild`、`vite`、`requests`、`keras`、`org.apache.logging.log4j`、`org.springframework:spring-expression`、`Microsoft.Data.SqlClient` 和 `Microsoft.AspNetCore.Identity`。
- 摘要没有给出精确评估结果，例如 precision、recall、误报数量、数据集规模或逐工具对比，所以无法从提供的文本中提取数值性能结论。

## Problem

## Approach

## Results

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