Git 更新修复 8 个漏洞

发表 分布式源代码控制系统 Git 2.24.1、2.23.1、2.22.2、2.21.1、2.20.2、2.19.3、2.18.2、2.17.3、2.16.6、2.15.4 和 2.14.62.24.1 的修正版本XNUMX,修复了允许攻击者重写文件系统中的任意路径、组织远程代码执行或覆盖“.git/”目录中的文件的漏洞。 员工发现的最多问题
微软安全响应中心显示,八个漏洞中有五个是Windows平台特有的。

  • CVE-2019-1348 — 流命令“feature export-marks=path”它允许 将标签写入任意目录,当使用未经检查的输入数据执行“git fast-import”操作时,可用于覆盖文件系统中的任意路径。
  • CVE-2019-1350 - 命令行参数的错误转义 可能导致 使用 ssh:// URL 在递归克隆期间远程执行攻击者代码。 特别是,以反斜杠结尾的转义参数(例如“test \”)处理不正确。 在这种情况下,当用双引号构建参数时,最后一个引号被转义,这使得可以在命令行上组织选项的替换。
  • CVE-2019-1349 — 在某些条件下在 Windows 环境中递归克隆子模块(“clone —recurse-submodules”)时 有可能 触发两次使用同一个 git 目录(.git、git~1、git~2 和 git~N 在 NTFS 中被识别为一个目录,但这种情况只针对 git~1 进行了测试),可以用来组织写入目录“.git”。 例如,为了组织代码的执行,攻击者可以通过 .git/config 文件中的签出后处理程序替换他的脚本。
  • CVE-2019-1351 - 在翻译“C:\”等路径时,Windows 路径中字母驱动器名称的处理程序仅设计用于替换单字母拉丁标识符,但没有考虑创建通过“subst letter:path”分配的虚拟驱动器的可能性。 此类路径不被视为绝对路径,而是被视为相对路径,这使得在克隆恶意存储库时可以在工作目录树之外的任意目录中组织记录(例如,在磁盘中使用数字或 unicode 字符时)名称 - “1:\what\the\ hex.txt”或“ä:\tschibät.sch”)。
  • CVE-2019-1352 — 在 Windows 平台上工作时,使用 NTFS 中的替代数据流,通过在文件名中添加“:stream-name:stream-type”属性来创建, 允许 克隆恶意存储库时覆盖“.git/”目录中的文件。 例如,NTFS 中的名称“.git::$INDEX_ALLOCATION”被视为指向“.git”目录的有效链接。
  • CVE-2019-1353 — 在 WSL(Windows Subsystem for Linux)环境中使用 Git 访问工作目录时 不曾用过 防止 NTFS 中的名称操纵(可以通过 FAT 名称转换进行攻击,例如,可以通过“git~1”目录访问“.git”)。
  • CVE-2019-1354 -
    机会 当克隆包含名称中带有反斜杠的文件(例如“a\b”)的恶意存储库时,会写入 Windows 平台上的“.git/”目录,这在 Unix/Linux 上是可以接受的,但被接受为Windows 上的路径。

  • CVE-2019-1387 - 对子模块名称的检查不足可用于组织有针对性的攻击,如果递归克隆,可能会 可能导致 执行攻击者的代码。 Git 并没有阻止在另一个子模块的目录中创建子模块目录,这在大多数情况下只会导致混乱,但并不能阻止递归克隆过程中另一个模块的内容被覆盖(例如,子模块目录) “hippo”和“hippo/hooks”放置为“.git/modules/hippo/”和“.git/modules/hippo/hooks/”,hippo中的hooks目录可以单独用于托管触发的hooks。

建议 Windows 用户立即更新其 Git 版本,并在更新之前不要克隆未经验证的存储库。 如果暂时还无法紧急更新Git版本,那么为了降低被攻击的风险,建议不要对未检查的仓库运行“git clone --recurse-submodules”和“git submodule update”,不要使用“git使用未经检查的输入流进行“快速导入”,并且不将存储库克隆到基于 NTFS 的分区。

为了增加安全性,新版本还禁止在 .gitmodules 中使用“submodule.{name}.update=!command”形式的构造。 对于发行版,您可以在页面上跟踪软件包更新的发布 Debian,Ubuntu, RHEL, SUSE/开放SUSE, Fedora, , ALT, FreeBSD的.

来源: opennet.ru

添加评论