首页 网络安全 正文
  • 本文约1335字,阅读需7分钟
  • 12
  • 0

Gitproxy推送多个分支机构时绕过审批CVE-2025-54583

摘要

栋科技漏洞库关注到Gitprox存在推送多个分支机构时会绕过审批获得批准漏洞,漏洞现已追踪为CVE-2025-54583,漏洞CVSS评分为6.5。

Gitproxy是 FINOS(金融开放源代码基金会)开发的一款非常便利的开源工具,这款工具主要是用于在 Git 操作中实现安全与合规性控制。

一、基本情况

Gitproxy在本地代理服务器与Git远程端间建立中介,对所有出站Git推送操作进行规则校验和流程控制,确保符合金融行业等领域安全要求。

Gitproxy推送多个分支机构时绕过审批CVE-2025-54583

栋科技漏洞库关注到Gitprox存在推送多个分支机构时会绕过审批获得批准漏洞,漏洞现已追踪为CVE-2025-54583,漏洞CVSS评分为6.5。

二、漏洞分析

CVE-2025-54583漏洞存在于GitProxy应用程序关于1.19.1及以下版本,这一漏洞允许用户在绕过策略和明确批准的同时推送到远程存储库。

该漏洞的来源是推送解析器动作parsePush.ts,这是因为它读取第一个分支并对其进行解析,同时会忽略后续分支(默默地让它们通过)。

由于跳过了检查和插件,包含秘密或不需要的更改的代码可能会被推送到存储库中,因为它可以让策略违规不被发现,归类为高影响漏洞。

尽管该修复涉及对提交和推送解析逻辑的多项改进,但核心解决方案是从一开始就防止多个分支推送:

if (refUpdates.length !== 1) {
  step.log('Invalid number of panch updates.');
  step.log(`Expected 1, but got ${refUpdates.length}`);
  step.setError('Your push has been blocked. Please make sure you are pushing to a single panch.');
  action.addStep(step);
  return action;
}

三、POC概念验证

1、在分支上做出承诺:

git checkout -b safe-panch
echo "Approved code" > file.txt
git add .
git commit -m "Approved code"
git push proxy safe-panch

2、等待安全分支机构的批准。

3、在一个单独的分支上使用一个秘密进行提交,例如:

git checkout -b bad-panch
echo "SECRET=abc123" > .env
git add .
git commit -m "Bad code"

4、同时按下两者:

git push proxy safe-panch bad-panch

预期结果:

理想情况下,这将强制对第二个分支机构进行检查,同时将其发送以供批准。

与此同时,第一个分支将被推到远程。一个更简单的解决方案是简单地防止多个分支推送。

实际结果:

两个分支都被推送到远程,第二个分支绕过代理。

影响后果:

具有推送访问权限的攻击者可以绕过审查策略,可能会将不需要的/恶意代码插入到受GitProxy保护的存储库中。

该漏洞影响所有依赖GitProxy执行策略和防止未经批准的更改的用户或组织。

除了常规推送访问外,它不需要提升权限,也不需要额外的用户交互。

然而,它确实需要GitProxy管理员或指定用户(canUserApproveRejectPush)来批准第一次推送。

更有可能的是,善意的用户会意外触发此操作。

四、影响范围

GitProxy <= 1.19.1

五、修复建议

GitProxy > 1.19.2

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接