index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html
![]()
软件供应链安全日益严峻,安全工具报出的海量漏洞警报真假难辨。复旦大学研究团队推出创新方法CHAINFUZZ,能自动为下游软件生成上游漏洞的概念验证攻击代码(PoC),精准验证漏洞可利用性。该方法大幅优于现有工具,并在实验中发现了8个零日漏洞。CHAINFUZZ通过跨层差异化定向模糊测试和自底向上的PoC生成策略,有效解决了下游软件的额外代码约束、跨软件层级依赖以及长供应链带来的挑战,为开发者提供高效可靠的漏洞修复依据。
🛡️ **精准验证漏洞可利用性**:CHAINFUZZ通过自动为下游软件生成上游漏洞的概念验证攻击代码(PoC),解决了安全工具误报率高的问题。它能够真实地模拟漏洞在实际软件环境中的触发过程,帮助开发者区分“假警报”与真正危险的漏洞,从而优化修复资源分配。
🚀 **创新技术应对复杂挑战**:该方法采用了“跨层差异化定向模糊测试”和“自底向上PoC生成策略”。前者通过识别“路标点”和分析执行轨迹差异,指导PoC生成以适应下游软件的额外代码和约束;后者则通过分而治之的策略,有效应对了长达多层依赖的软件供应链中路径爆炸的问题。
💡 **显著的实验成效**:CHAINFUZZ在包含66个(漏洞,供应链)组合的数据集上进行了全面评估,是唯一能为所有可利用漏洞生成下游PoC的工具,且耗时远少于知名模糊测试工具。更重要的是,它在验证已知漏洞的过程中,意外发现了8个此前未知的零日漏洞,凸显了其强大的挖掘能力。
⚠️ **供应链安全的深层洞察**:研究还揭示了更新依赖库版本并非总是万能解决方案。在某些情况下,下游软件在更新依赖库后,反而可能在其中触发全新的漏洞,这提示开发者在更新依赖时需进行更审慎的安全评估。
原创 复旦白泽战队 2025-10-14 14:18 上海

在开源软件盛行的今天,软件供应链安全问题日益严峻。安全工具报出的海量漏洞警报是真是假?
Science Technology
在开源软件盛行的今天,软件供应链安全问题日益严峻。安全工具报出的海量漏洞警报是真是假?开发者应优先修复哪个?为了解决这一难题,来自复旦大学系统软件与安全实验室的研究团队提出了CHAINFUZZ,一种能够自动为下游软件生成上游漏洞PoC(概念验证攻击代码)的创新方法,从而精准验证上游漏洞的真实可利用性。该成果不仅大幅优于现有工具,更在实验中发现了8个零日漏洞!
前言现代软件开发高度依赖开源的第三方库,这构成了复杂的软件供应链。然而,上游库中的一个漏洞,就可能像病毒一样,通过层层依赖传播,对全球无数的下游软件构成严重威胁。最近震惊业界的xz/liblzma后门漏洞(CVE-2024-3094)便是一个典型例子。为了应对这种威胁,开发者普遍使用软件成分分析(SCA)工具来识别有风险的依赖项。但这些工具常常存在极高的误报率——一项研究指出,OWASP DC工具报告的漏洞中,高达88.8%都是无法在下游实际触发的“假警报”。这导致开发人员耗费大量时间进行人工甄别,真正危险的漏洞反而被淹没在警报的海洋中,得不到及时修复。为解决这一痛点,我们提出了CHAINFUZZ,一种通过自动生成PoC来验证上游漏洞在下游软件中可利用性的全新方法。研究背景:为何验证如此困难?直接将上游漏洞的PoC应用到下游软件上,为什么行不通?我们的研究发现,仅有3.25%的上游PoC可以直接在下游触发漏洞。这背后,存在三大核心挑战:图 1:一个真实世界中的漏洞(CVE-2021-29390)从 libjpeg-turbo 传播到 libtiff,再到 OpenJPEG 的过程。下游引入的额外代码与约束 (Intra-layer Code and Constraints):下游软件通常会添加自己的业务逻辑和安全检查。例如,libtiff在使用libjpeg-turbo处理JPEG数据前,会检查图像的宽高是否与TIFF段的宽高匹配,这使得上游原始的PoC直接失效。跨软件层级的复杂依赖 (Inter-layer Dependencies):不同软件层之间的判断条件会相互影响。例如,OpenJPEG中的一个检查会直接决定libtiff内部的执行流程,形成跨越多层软件的控制和数据流依赖。长供应链带来的路径爆炸 (Long Supply Chains):在层层嵌套的依赖关系中(例如A依赖B,B依赖C),从最下游的软件出发,去探索最上游的漏洞触发路径,其可能性会呈指数级增长,这让传统的模糊测试方法难以应对。研究思路:ChainFuzz 如何破解难题?图 2:CHAINFUZZ 的框架CHAINFUZZ的核心思想是:上游漏洞的原始PoC虽然不能直接使用,但它蕴含了触发漏洞的关键信息。我们可以利用这些信息,来指导下游PoC的生成。为此,我们设计了两大关键技术:跨层差异化定向模糊测试 (Cross-layer Differential Directed Fuzzing)识别“路标点”(Waypoints):我们不直接以最上游的漏洞点为目标,而是在上下游软件交互的接口(如API函数)处设立“路标点”。执行轨迹切分与评估:我们将每次测试的执行轨迹切分为“下游部分(Td)”和“上游部分(Tu)” 。在测试过程中,我们优先选择那些能探索更多下游路径(Td多样性高),同时其上游行为与原始PoC更相似(Tu与Tv相似度高)的输入。轨迹差异引导的变异:通过对比当前测试输入在上游产生的轨迹Tu和原始PoC的轨迹Tv之间的差异,我们能进行精准的输入变异,逐步“修正”执行路径,最终触发漏洞。图 3:跨层差异化定向模糊测试自底向上的PoC生成策略 (Bottom-up PoC Generation)分而治之:为解决长供应链的路径爆炸问题,我们采用“自底向上”的策略。例如,对于S0 -> S1 -> S2的依赖链,我们首先基于S0的原始PoC为S1生成PoC1,再以PoC1为基础,为S2生成PoC2。PoC优先级与任务重访:在每一步中,我们会生成多个PoC并进行打分,优先使用“质量”最高的PoC指导下一步生成。如果发现某一层(如S2)的约束与更早的层(如S0)冲突导致生成失败,我们会启动“任务重访”机制,回退到冲突层,生成更多样的PoC来绕过限制。实验结果我们在一个包含66个独特的(漏洞,供应链)组合的数据集上对CHAINFUZZ进行了全面评估。高效性与准确性:CHAINFUZZ是唯一能够为所有66个可利用漏洞成功生成下游PoC的工具,且用时远少于AFLGo、AFL++等知名模糊测试工具。对于传统的SCA工具和可达性分析方法存在的大量误报问题,CHAINFUZZ通过生成实际的PoC,实现了极低的误报和漏报率。攻克长供应链:对于现实世界中常见的4层依赖深度的软件供应链,CHAINFUZZ能在30分钟内成功生成PoC,证明了其处理复杂依赖关系的能力。发现8个零日漏洞:在验证已知漏洞的过程中,CHAINFUZZ意外地发现了8个全新的零日漏洞。这些漏洞的触发往往涉及多个软件组件的复杂交互。例如,libde265中的漏洞 CVE-2022-43252 通过供应链传播到 libheif 和 Jasper。在测试JasPer时,我们发现JasPer在使用libheif 的API时因未充分检查返回值而导致的空指针解引用问题。额外发现:我们的研究还发现,简单地更新依赖库版本,并不总能解决问题。在依赖库更新后,下游软件有可能在依赖库中触发全新的漏洞。第一作者邓朋,系统软件与安全实验室 21 级直博生。主要研究方向为大模型驱动安全,漏洞挖掘,利用,修复等。在 CCS,USENIX Security,IEEE/ACM ASE 等会议上发表多篇研究论文。相关研究成果在华为,电信等多家企业落地,挖掘高危零天漏洞 100 余个,获得微软,苹果等公司致谢。
素材:邓朋
责编:邬梦莹
审核:林楚乔、张琬琪、洪赓
复旦白泽战队一个有情怀的安全团队
还没有关注复旦白泽战队?
公众号、知乎、微博搜索:复旦白泽战队也能找到我们哦~
阅读原文
跳转微信打开