本项目演示了 json.org 中的 CVE-2022-45688 —— 有一个简单的应用程序 XML2JSONConverter,用于从输入读取XML,将其转换为JSON并漂亮打印到控制台。
使用恶意输入时,应用程序会因堆栈溢出而崩溃。
测试用例 CVE202245688Test 演示了此行为,可通过运行 mvn test 来执行。
有几个sh脚本用于运行不同的分析,结果报告可以在 scan-results 中找到。
SCA报告(包括设置为GitHub actions的报告)未能报告 CVE-2022-45688,尽管包含的测试清楚地表明该漏洞存在。原因是仅基于元数据分析(即声明的依赖关系)的工具没有意识到该项目使用了 json.org 的一个(存在漏洞版本的)shaded版本。
请注意,shading是手动完成的,即没有使用Maven shade插件。我们最近的研究表明,这是软件组成分析假阴性的常见来源。
pom.xml 中有一个插件,用于生成 CycloneDX 格式的 SBOM。为此,运行 mvn cyclonedx:makePackageBom,SBOM可以在 target/ 目录中找到,格式为 json 和 xml。