Git for Windows 2.29.2 (2) のリリース【セキュリテイ・アップデート】

no extension

Windows 版 Git である Git for Windows の 2.29.2 (2) がリリースされたのだが,同梱されている Git LFS について脆弱性の改修が行われている。

実は全く知らなかったのだが, Git LFS って Go で書かれてるんだねぇ。 もの知らずでゴメン 🙇

On Windows, if Git LFS operates on a malicious repository with a git.bat or git.exe file in the current directory, that program would be executed, permitting the attacker to execute arbitrary code. This does not affect Unix systems.

This occurs because on Windows, Go includes (and prefers) the current directory when the name of a command run does not contain a directory separator.

via Git LFS can execute a Git binary from the current directory · Advisory · git-lfs/git-lfs · GitHub

あー,なるほど。

カレント・ディレクトリにある実行モジュール(バッチを含む)を起動するのに,カレントであることを明示する .\ を省略できたり,拡張子を省略しても動いちゃうとか,イマドキではないわな。

で,Git LFS がどうやって解決しているかというと,環境変数 PATH から該当のファイルを探して,フルパスで Goexec.Cmd インスタンスに渡ししているようだ。

って,内部でコマンドを実行する場合には必ずこれをせんといかんということか。 これパクれないかなぁ。 NYAGOS とかどうやってるんだろ。

真面目に調べてみるか…

CVE-2020-27955

  • CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • 深刻度: 緊急 (Score: 9.8)
基本評価基準 評価値
攻撃元区分 ネットワーク
攻撃条件の複雑さ
必要な特権レベル 不要
ユーザ関与レベル 不要
スコープ 変更なし
機密性への影響
完全性への影響
可用性への影響

アップデートは

アップデートは計画的に。