SecBench.js
收藏arXiv2025-06-05 更新2025-06-07 收录
下载链接:
https://github.com/advisories
下载链接
链接失效反馈官方服务:
资源简介:
SecBench.js数据集是一个包含600个易受攻击的npm包的基准测试,这些包具有路径遍历、原型污染、命令注入、代码注入和ReDoS漏洞。该数据集旨在帮助开发人员和安全研究人员理解和解决npm包中的安全漏洞。数据集的创建是通过从GitHub Advisory Database和Snyk Vulnerability Database中提取最近漏洞信息来完成的。数据集的应用领域包括漏洞检测、漏洞利用生成和漏洞修复。
SecBench.js is a benchmark dataset containing 600 vulnerable npm packages with vulnerabilities including path traversal, prototype pollution, command injection, code injection, and ReDoS flaws. This dataset aims to help developers and security researchers understand and resolve security vulnerabilities in npm packages. It was created by extracting recent vulnerability information from the GitHub Advisory Database and Snyk Vulnerability Database. Its application areas include vulnerability detection, exploit generation, and vulnerability remediation.
提供机构:
斯图加特大学
创建时间:
2025-06-05
搜集汇总
数据集介绍

构建方式
SecBench.js数据集的构建基于对npm包中安全漏洞的系统性收集与验证,特别聚焦于路径遍历、原型污染、命令注入、代码注入和ReDoS等五类常见漏洞。研究团队从公开漏洞数据库(如CVE、GitHub安全公告)中筛选符合特定标准的漏洞,并通过人工验证确保每个漏洞的可复现性和可执行性。数据集构建过程中采用了动态分析与静态分析相结合的方法,确保漏洞样本的多样性和真实性。每个漏洞条目均包含完整的漏洞描述、受影响包版本信息及可执行的PoC利用代码(若存在),为后续研究提供了标准化的评估基准。
特点
SecBench.js的核心特点在于其高度结构化的漏洞表征体系和可执行性验证机制。数据集涵盖560个经过严格筛选的npm包漏洞,每个漏洞均标注了详细的元数据,包括漏洞类型、CVE编号、受影响版本范围及触发条件。区别于传统漏洞数据集,SecBench.js特别强调PoC利用代码的可用性,其中179个漏洞配备了经过验证的利用代码。数据集还提供了标准化的测试环境配置和验证脚本,支持自动化漏洞复现与利用效果评估。其分层设计的漏洞分类体系(按攻击向量和影响分级)为研究不同漏洞类型的检测与防御提供了细粒度分析基础。
使用方法
使用SecBench.js时,研究者可通过标准化接口访问漏洞元数据及对应PoC代码。典型工作流程包括:1)通过漏洞ID或类型筛选目标样本;2)获取配套的测试环境配置脚本快速搭建复现环境;3)执行预置的验证脚本确认漏洞存在性;4)基于提供的PoC代码开展漏洞利用或防御方案测试。对于无PoC的漏洞条目,可利用数据集提供的包版本信息和漏洞描述手动构建测试用例。数据集支持与主流静态分析工具(如CodeQL)和动态分析框架的集成,便于开展自动化漏洞检测方法的基准测试。所有漏洞样本均采用模块化存储结构,支持按需加载和分布式测试场景。
背景与挑战
背景概述
SecBench.js是由斯图加特大学的研究团队于2023年提出的一个专注于Node.js生态系统安全漏洞的数据集。该数据集收录了600个存在安全漏洞的npm包,覆盖了五种典型的JavaScript漏洞类型:路径遍历、原型污染、命令注入、代码注入和正则表达式拒绝服务(ReDoS)。作为首个针对服务器端JavaScript的可执行安全基准套件,SecBench.js为安全研究人员提供了标准化评估环境,显著推动了自动化漏洞检测与利用生成领域的研究进展。数据集通过精心设计的验证检查机制确保了漏洞利用(PoC)的可复现性,已成为评估静态分析工具和机器学习模型在JavaScript安全领域性能的重要基准。
当前挑战
SecBench.js面临的核心挑战体现在两个维度:技术实现层面,数据集构建需要克服JavaScript动态特性带来的分析困难,包括原型链的动态修改、高阶函数的广泛使用以及异步控制流的复杂性;研究应用层面,数据集需要解决漏洞利用生成中的关键问题,如模糊漏洞描述的语义理解、多步骤攻击链的自动化构建以及环境依赖性的精确模拟。具体而言,原型污染漏洞需要准确追踪对象属性的传播路径,命令注入漏洞需处理复杂的输入净化逻辑,而ReDoS漏洞则要精确量化正则表达式的执行耗时阈值。这些挑战使得自动化PoC生成在准确率和覆盖率方面难以兼顾,也凸显了SecBench.js作为研究平台的价值。
常用场景
经典使用场景
SecBench.js数据集在软件安全研究领域中被广泛用于评估和验证自动化漏洞检测与利用生成技术的有效性。该数据集包含了600个易受攻击的npm包,涵盖了路径遍历、原型污染、命令注入、代码注入和正则表达式拒绝服务(ReDoS)等多种漏洞类型。研究人员利用SecBench.js来测试新型漏洞检测工具的性能,特别是在生成概念验证(PoC)漏洞利用方面的能力。通过该数据集,研究者能够量化工具在不同漏洞类型上的表现,从而推动自动化漏洞修复技术的发展。
实际应用
在实际应用中,SecBench.js数据集被安全团队和npm包维护者用于多个关键场景。安全研究人员利用该数据集来验证新发现的漏洞是否可被自动化工具检测和利用。开发团队则通过数据集中的PoC样本来测试其补丁的有效性,确保修复措施真正消除了安全风险。此外,该数据集还被集成到持续集成/持续部署(CI/CD)流程中,作为回归测试套件的一部分,防止已知漏洞的再次出现。这些应用显著提高了软件供应链的整体安全性。
衍生相关工作
SecBench.js数据集催生了一系列重要的衍生研究。POCGEN系统是该数据集最著名的应用成果,它首次实现了基于LLM的自动化PoC生成。Explode.js作为另一个代表性工作,利用静态数据流分析和符号执行技术在该数据集上实现了漏洞检测。Node-Medic系列研究则结合动态污点分析技术扩展了数据集的应用范围。这些衍生工作不仅验证了数据集的科研价值,还推动了JavaScript安全分析技术的多样化发展,形成了从检测到修复的完整研究链条。
以上内容由遇见数据集搜集并总结生成



