GitLab < 15.5.9 (CRITICAL-SECURITY-RELEASE-GITLAB-15-7-5-RELEASED)

critical Nessus 插件 ID 187455

简介

远程主机上安装的 GitLab 版本受到一个漏洞的影响。

描述

远程主机上安装的 GitLab 版本受到以下漏洞的影响:

- Git 是分布式版本控制系统。 `git log` 可以使用其 `--format` 说明符以任意格式显示提交。此功能也会通过 `export-subst` gitattribute 暴露给 `git archive`。处理填充运算符时,在“pretty.c”中存在整数溢出:: format_and_pad_commit()`,其中 `size_t` 被错误地存储为 `int`,然后作为偏移添加到 `memcpy()`。运行调用提交格式化机制的命令的用户可直接触发此溢出(例如,`git log --format=...`)。它也可以借助 git archive 通过 export-subst 机制间接触发,该机制在 git 存档期间扩展存储库内文件的格式说明符。此整数溢出可导致任意堆写入,从而可能导致任意代码执行。已在 2023 年 1 月 17 日发布的版本中修补该问题,恢复到 v2.30.7。建议用户升级。无法升级的用户应在不受信任的存储库中禁用 `git archive`。如果通过 `git daemon` 暴露 git 存档,请通过运行 `git config --global daemon.uploadArch false` 将其禁用。 (CVE-2022-41903)

- Git 是分布式版本控制系统。 gitattributes 是一种允许定义路径属性的机制。可通过将 `.gitattributes` 文件添加到存储库来定义这些属性,该文件包含一组文件模式以及应为匹配此模式的路径设置的属性。解析 gitattributes 时,当存在大量路径模式、大量单一模式的属性或声明的属性名称很大时,可能会发生多个整数溢出。这些溢出可通过构建的 `.gitattributes` 文件触发,该文件可能是提交历史记录的一部分。从文件解析 gitattributes 时,Git 会静默拆分超过 2KB 的行,但从索引解析它们时则不会。因此,失败模式取决于文件是否存在于工作树、索引或两者中。此整数溢出可导致任意堆读取和写入,从而可能导致远程代码执行。已在 2023 年 1 月 17 日发布的版本中修补该问题,恢复到 v2.30.7。建议用户升级。目前尚无针对此问题的解决方案。(CVE-2022-23521)

请注意,Nessus 尚未测试此问题,而是只依据应用程序自我报告的版本号进行判断。

解决方案

升级至 GitLab 15.5.9 或更新版本。

另见

http://www.nessus.org/u?5c35b5da

插件详情

严重性: Critical

ID: 187455

文件名: gitlab_critical-security-release-gitlab-15-7-5-released.nasl

版本: 1.0

类型: combined

代理: unix

系列: CGI abuses

发布时间: 2024/1/2

最近更新时间: 2024/1/2

配置: 启用全面检查

支持的传感器: Nessus Agent, Nessus

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: Critical

基本分数: 10

时间分数: 7.4

矢量: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS 分数来源: CVE-2022-41903

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 8.5

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

时间矢量: CVSS:3.0/E:U/RL:O/RC:C

漏洞信息

CPE: cpe:/a:gitlab:gitlab

必需的 KB 项: installed_sw/GitLab

易利用性: No known exploits are available

补丁发布日期: 2023/1/17

漏洞发布日期: 2023/1/10

参考资料信息

CVE: CVE-2022-23521, CVE-2022-41903