腾讯云公告 > 公告详情
扫码查看公告

【安全通告】GitLab CE/EE 远程代码执行漏洞风险通告

尊敬的腾讯云用户,您好!

腾讯云安全中心监测到,GitLab CE/EE 被披露其存在远程代码执行漏洞,暂无漏洞编号。可导致经过身份验证的远程攻击者通过提交包含恶意 Jupyter Notebook(.ipynb)文件的 commit 并查看其 diff,利用底层 Oj JSON 解析器的内存破坏漏洞(越界写 + 堆指针泄露)实现远程代码执行等危害。

为避免您的业务受影响,腾讯云安全建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。

漏洞详情
GitLab 是一个用于代码仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。

在 GitLab CE/EE 中,GitLab 使用 Oj 高性能 JSON 解析器(原生 C 扩展)处理 Jupyter Notebook 文件的 diff 渲染。Oj 3.13.0 至 3.17.1 版本中存在两处内存安全漏洞:其一为解析器嵌套栈未校验深度,导致数组嵌套时可越界写入连续的 0x01 字节,进而通过操纵 buf.head 指针和 jemalloc 分配器行为,将伪造的 p->start 回调指针写入解析器结构;其二为对象键长度处理缺陷,当键长度超过 0x10000 时,len 字段被截断为 29,导致返回的键数据中泄露堆指针(buf[6:14])。攻击者可利用堆指针泄露绕过 ASLR,结合回调指针覆盖,在下一个解析中劫持控制流,最终通过 system() 执行任意命令。

目前该漏洞的漏洞细节、POC已公开。

风险等级
高风险

漏洞风险
经过身份验证的远程攻击者利用该漏洞可在 GitLab 服务器上以 git 用户身份执行任意命令,导致源代码泄露、凭证窃取、仓库篡改或横向移动等危害。

影响版本
15.2.0 <= GitLab CE/EE <= 18.10.7
18.11.0 <= GitLab CE/EE <= 18.11.4
19.0.0 <= GitLab CE/EE <= 19.0.1
3.13.0 <= Oj (RubyGems) <= 3.17.1

安全版本
GitLab CE/EE >= 18.10.8
GitLab CE/EE >= 18.11.5
GitLab CE/EE >= 19.0.2
Oj (RubyGems) >= 3.17.3

修复建议
1. 官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,建议升级至最新版本
2. 缓解措施:
(1) 禁止新用户注册,仅允许管理员分配账号;
(2) 临时禁用 Jupyter Notebook diff 渲染(通过修改 GitLab 配置或移除 ipynbdiff 依赖);
(3) 限制用户对项目的推送和 commit 查看权限,仅授予可信用户;
(4) 监控 GitLab 日志中异常的 .ipynb 文件处理请求;
(5) 对于自托管实例,可考虑升级 Oj (RubyGems) 至 3.17.3 或更高版本(需注意兼容性)。

【备注】:建议您在升级前做好数据备份工作,避免出现意外

漏洞参考


img

2026-07-25