CVE-2025-7736CVE-2025-7736是GitLab社区版和企业版中的一个访问控制绕过安全漏洞。该漏洞影响所有从17.9版本开始、但在18.3.6之前的GitLab版本,以及18.4到18.4.4之前和18.5到18.5.2之前的版本。漏洞的根本原因在于GitLab在处理OAuth身份验证过程中的访问控制验证存在缺陷。具体来说,经过身份验证的攻击者可以通过OAuth提供商进行身份验证,利用该漏洞绕过正常的项目成员访问控制限制,从而能够访问原本仅限项目成员查看的GitLab Pages内容。这一漏洞属于中等复杂度的安全缺陷,攻击者需要具有低权限但能够进行OAuth认证即可实施攻击。虽然该漏洞的CVSS评分仅为3.1,属于低危级别,但它仍然可能泄露敏感的项目信息,特别是对于那些依赖GitLab Pages进行内部文档或私有项目托管的组织。GitLab官方已于2025年11月12日发布了补丁版本18.5.2来修复此问题,建议所有使用受影响版本的用户尽快升级到最新稳定版本以消除安全风险。
该漏洞属于经典的访问控制绕过(Broken Access Control)类型,编号为CWE-284。漏洞产生的技术原因在于GitLab在实现OAuth认证流程时,对已认证用户的项目访问权限验证逻辑存在缺陷。当用户通过OAuth提供商(如GitHub、Google等)完成身份验证后,系统会创建一个OAuth会话并生成相应的访问令牌。然而,在后续的GitLab Pages内容访问请求中,系统错误地信任了OAuth认证状态,而没有正确验证用户是否为请求访问项目的实际成员。攻击者首先需要拥有一个GitLab账户,并且该账户至少是某个项目的成员。然后攻击者通过OAuth提供商进行认证,系统会为其建立OAuth会话。当攻击者尝试访问其他不具有成员资格的项目时,由于OAuth会话已建立且认证状态有效,系统错误地认为该用户具有访问权限,从而绕过了传统的基于项目成员资格的访问控制检查。这种绕过机制使得攻击者可以查看目标项目的私有Pages内容,包括可能包含敏感信息的文档、API文档、内部wiki等资源。漏洞的利用不需要任何用户交互,攻击者可以在任何时间发起请求,且只需要基本的网络访问能力即可。