导读:PHPUnit项目近日修补了高风险漏洞CVE-2026-24765。
多个安全组织指出,攻击者可在特定测试条件下,通过恶意覆盖率文件触发不安全的反序列化,让CI/CD测试流程成为RCE攻击入口。
开源PHP单元测试框架PHPUnit存在高风险资安漏洞CVE-2026-24765,CVSS风险分数为7.8分,属于高风险等级(High)。
在特定条件下,若于启用测试覆盖率的PHPT测试执行情景中,攻击者能事先写入恶意测试覆盖率资料,便可触发不安全反序列化,进而执行任意代码。
PHPUnit是PHP生态系统中广泛使用的单元测试工具,常被整合至CI/CD流程里,用于自动化测试与项目质量验证。
PHPUnit维护团队于1月27日发布安全公告称,CVE-2026-24765漏洞成因出在PHPUnit于PHPT测试执行过程中,用于清理测试覆盖率文件的cleanupForCoverage()逻辑。
该流程会读取并反序列化.coverage相关文件档案,但未对其内容进行完整验证,导致攻击者只要能事先在系统中植入恶意序列化对象,就有机会在测试流程执行期间,触发任意代码的执行(RCE)。
根据PHPUnit团队说明,虽然此漏洞的利用前提包含「可写入特定文件」的条件,但在实际环境中,CI/CD自动化流程、测试成果物共享机制,以及未完全隔离的运行环境,往往放大了实际风险。例如,攻击者可透过恶意Pull Request或供应链途径,在原代码库或测试目录中植入特制的覆盖率文件,当CI系统自动执行测试并处理覆盖率文件时,便可能在运行节点上执行攻击指令。
此外,若开发团队在本地端或共享测试环境中使用PHPUnit进行测试,且档案权限控管不足,也可能成为漏洞被滥用的条件之一。而这类攻击模式的出现,也突显测试工具本身的安全性很重要,因为已直接影响软件供应链与部署流程的防护水准。
官方发布修补版本,涵盖多个主流分支
此漏洞影响范围涵盖PHPUnit项目多个仍在维护的主要版本分支,维护团队已发布8.5.52、9.6.33、10.5.62、11.5.50与12.5.8版予以修补,PHPUnit各主线分支中,早于上述修补版本的所有版本皆受影响。官方呼吁仍在使用旧版PHPUnit的开发团队,应尽速升级,以避免测试流程成为潜在攻击入口。
除了套件更新外,从该漏洞在CI/CD管道中的使用情景看,软件开发团队应立即检察是否允许未经审查的源代码或测试时触发自动化测试,并强化CI runner的隔离与生命周期管理,以降低恶意文件长期存在的风险。
作者:行动的大雄
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。