最新消息:关注人工智能 AI赋能新媒体运营

PHPUnit爆出高风险漏洞CVE-2026-24765,CI/CD测试流程或成RCE攻击入口

科技资讯 admin 浏览

开源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的隔离与生命周期管理,以降低恶意文件长期存在的风险。