CVE-2025-11578CVE-2025-11578是GitHub Enterprise Server中的一个高危权限提升漏洞,CVSS评分7.2。该漏洞允许已认证的企业管理员通过利用pre-receive hook环境中的符号链接逃逸(symlink escape)技术来获得服务器的root SSH访问权限。攻击者通过制作恶意的仓库和环境,在hook清理过程中替换系统二进制文件,并执行有效载荷将攻击者自己的SSH公钥添加到root用户的authorized_keys文件中,从而实现对服务器的完全root访问控制。此漏洞通过GitHub Bug Bounty计划报告,影响所有3.19版本之前的GitHub Enterprise Server实例。攻击者需要具备企业管理员权限才能成功利用此漏洞,这使得该漏洞在内部威胁场景中具有极高的安全风险。
该漏洞的核心在于GitHub Enterprise Server的pre-receive hook执行环境中的符号链接处理机制存在缺陷。Pre-receive hooks是GitHub Enterprise Server在接收推送内容时执行的服务器端钩子,用于在内容被接受之前进行验证和检查。攻击者首先创建一个包含恶意符号链接的仓库,该符号链接指向系统关键二进制文件所在的目录。然后,攻击者精心构造一个环境(environment),使得在hook执行完毕后的清理阶段,符号链接会被错误地解析,从而允许攻击者用恶意文件替换系统二进制文件。由于hook执行时具有较高的系统权限,攻击者可以借此机会执行任意代码,最终实现将SSH公钥注入root用户的authorized_keys文件,获得root SSH访问权限。整个攻击过程利用了符号链接的特性逃逸了容器/沙箱环境的限制,直接影响到宿主系统的安全性。