paperbot · PL 论文追踪

全部论文 待读 收藏

P2 SecBench.js: An Executable Security Benchmark Suite for Server-Side JavaScript

SecBench.js:面向服务端 JavaScript 的可执行安全基准套件
ICSE 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)2023匹配度 3/10 · 该论文提供面向 npm 服务端 JavaScript 的可执行漏洞基准,属于程序分析与安全测试交叉中的 benchmark 工作,与用户对重要场景下 benchmark 的兴趣有弱关联;但它不涉及 LLM/Agent、静态分析核心方法、浮点程序分析或贝叶斯程序分析,与主要研究方向匹配度较低。引用 44 inbox
Masudul Hasan Masud Bhuiyan, Adithya Srinivas Parthasarathy, Nikos Vasilakis, Michael Pradel, Cristian-Alexandru Staicu
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:首个面向 npm 服务端 JavaScript 的可执行漏洞基准套件,含 600 个漏洞利用与验证 oracle。

npm 生态系统漏洞频发,但缺乏真实、带可执行利用和修复信息的可复用漏洞基准,导致研究者各自构建评估数据集、难以横向比较。本文提出 SecBench.js,首个服务端 JavaScript 漏洞基准套件,包含 600 个漏洞,覆盖五类最常见漏洞,每个漏洞配有利用 payload 与验证利用是否成功的 oracle。基于该基准展示三类应用:与公开安全公告交叉核对,发现 19 个包中 168 个被错误标注的易受攻击版本;对 exploit 施加简单代码变换可识别有缺陷的修复;动态分析 exec() 等 sink API 调用得到代码位置 ground truth 以评估漏洞检测器。此外还发现 20 个零日漏洞,多数已被从业者确认。

问题
npm 生态漏洞频发,但缺少真实、带可执行 exploit 与修复信息的可复用漏洞基准,研究者被迫各自构建评估数据集,难以公平比较检测技术。
方法
构建 SecBench.js 基准套件:收录 600 个服务端 JavaScript 漏洞,覆盖五类最常见漏洞类别,每个漏洞附带可执行利用 payload 以及验证利用是否成功的 oracle。
评估
通过三类应用评估:与公开安全公告交叉核对发现 19 个包中 168 个误标的易受攻击版本;对 exploit 做代码变换可暴露有缺陷的修复;动态分析 sink API 调用生成用于评估检测器的代码位置 ground truth;并发现 20 个零日漏洞。
原文摘要(Abstract)

NPM is the largest software ecosystem in the world, offering millions of free, reusable packages. In recent years, various security threats to packages published on npm have been reported, including vulnerabilities that affect millions of users. To continuously improve techniques for detecting vulnerabilities and mitigating attacks that exploit them, a reusable benchmark of vulnerabilities would be highly desirable. Ideally, such a benchmark should be realistic, come with executable exploits, and include fixes of vulnerabilities. Unfortunately, there currently is no such benchmark, forcing researchers to repeatedly develop their own evaluation datasets and making it difficult to compare techniques with each other. This paper presents SecBench.js,, the first comprehensive benchmark suite of vulnerabilities and executable exploits for npm. The benchmark comprises 600 vulnerabilities, which cover the five most common vulnerability classes for server-side JavaScript. Each vulnerability comes with a payload that exploits the vulnerability and an oracle that validates successful exploitation. SecBench.js, enables various applications, of which we explore three in this paper: (i) cross-checking SecBench.js, against public security advisories reveals 168 vulnerable versions in 19 packages that are mislabeled in the advisories; (ii) applying simple code transformations to the exploits in our suite helps identify flawed fixes of vulnerabilities; (iii) dynamically analyzing calls to common sink APIs, e.g., exec(), yields a ground truth of code locations for evaluating vulnerability detectors. Beyond providing a reusable benchmark to the community, our work identified 20 zero-day vulnerabilities, most of which are already acknowledged by practitioners.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{BhuiyanPVPS23,
  title = {SecBench.js: An Executable Security Benchmark Suite for Server-Side JavaScript},
  author = {Masudul Hasan Masud Bhuiyan and Adithya Srinivas Parthasarathy and Nikos Vasilakis and Michael Pradel and Cristian-Alexandru Staicu},
  booktitle = {ICSE},
  year = {2023},
  doi = {10.1109/icse48619.2023.00096}
}