Git LFS の脆弱性 CVE-2026-105803:自分は当たる?3.8.1 と Git for Windows

PR
Git LFS の脆弱性 CVE-2026-105803:自分は当たる?3.8.1 と Git for Windows
この記事は約18分で読めます。

日本時間の2026年10月23日に、Git LFS(大きなファイルを Git で扱うための拡張)の脆弱性 CVE-2026-105803 の告知(GitHub の告知 GHSA-x72p-hmqp-46hw、4時55分)と、直した版 3.8.1(3時30分)が出ました(告知の UTC の時刻に9時間を足しました)。悪意のあるリポジトリからファイルを取ってくるときに、任意のコマンドやプログラムが動きうる、という件です。同じ日の4時10分に、Git for Windows 2.56.0(3) が、Git LFS を 3.8.1 に上げて直しました。

Git for Windows は Git LFS を同梱していて(リリースノートに "Comes with Git LFS v3.8.1" とあります)、インストーラーの源では、既定で選ばれています。GitHub Desktop も、自分の中に Git LFS を持っています。だから、Git LFS を使っている覚えが無い人にも関わります。

先に答えを書きます。ここがいちばん大事なところです。

  • 当たるのは Git LFS の 1.3.0 以降のすべての版で、直ったのは 3.8.1 です。 一つ前の 3.8.0 も当たります。告知は「全員 3.8.1 に上げる」と書いています(→「当たる版と、直った版」)
  • Git for Windows を使っているなら、2.56.0(3) に上げます。 同梱の Git LFS が 3.8.1 になる、とリリースノートが書いています。上げたあと、git lfs version の版が 3.8.1 かを見ます(→「Windows:Git for Windows を 2.56.0(3) に上げる」)
  • Mac の Homebrew は、brew upgrade git-lfs で 3.8.1 です(→「Mac:Homebrew の git-lfs を上げる」)
  • Linux の apt は、10月24日15時ごろに見た範囲では、Ubuntu・Debian の直しがまだ出ていません。 上げられない間は、信頼できない出どころのリポジトリを clone しません。告知は、Git LFS を丸ごと無効にする以外に、1つで効く回避策は無い、と書いています(→「Linux(Ubuntu・Debian):直しはまだ出ていない(2026年10月24日時点)」)
  • GitHub Desktop は、10月24日15時ごろに見た範囲では、この件の告知がまだありません。 Desktop の告知が出るまでは、信頼できない出どころのリポジトリを Desktop で clone しません(→「GitHub Desktop を使っている人は?」)

初心者がまずやることは、git lfs version で版を見ることです。3.8.1 より前なら上げます。

書いてあることは、Git LFS の告知とリリースノート、Git for Windows、Homebrew、Debian と Ubuntu の追跡、GitHub Desktop、公的機関の一覧などを、2026年10月24日の14時45分から15時ごろ(日本時間)に開いて確かめたものです。手元の出力は、同じ日に Mac(14時49分)と、Docker のコンテナの中の Ubuntu 26.04・Debian 13(14時59分)で流しました。Windows では流していません。

この記事でわかること
  • 何が直ったか(悪意のあるリポジトリから取ってくるときに、コマンドが動きうる)と、点数は誰が付けたか
  • 当たる版と直った版(3.8.1)。同じ版で直ったほかの 3 件
  • 自分の版の見方(git lfs version)と、Windows・Mac・Linux・GitHub Desktop の状況
  • すぐ上げられないときに、告知が書いていること
  • 悪用は確認されているか(2026年10月24日時点)

10月23日に、Git LFS で何があった?

Git LFS の開発元は、2026年10月23日(日本時間)に、v3.8.1 を出しました。リリースノートによると、v3.8.1 は4件の脆弱性(CVE-2026-69260・CVE-2026-69261・CVE-2026-105802・CVE-2026-105803)の直しで、Git LFS が動く OS すべてに当たります。この記事は、そのうち CVE-2026-105803 を中心に書きます。告知の題は、「細工した Git LFS の設定で、任意のコマンドが動きうる」です(原文は "Git LFS may execute arbitrary commands via crafted Git LFS configurations")。

Git LFS とは

Git LFS の公式サイトは、音声・動画・データの束・画像などの大きなファイルを、Git の中では短い文字の目印(ポインター)に置き換え、中身は GitHub.com などのサーバーに置く仕組みだ、と書いています。使い始めは git lfs install(利用者のアカウントごとに 1 回)で、扱うファイルの種類は git lfs track か .gitattributes で選びます。使い方の説明は、この記事ではここまでにします。

告知が書いていること

告知(GHSA)の説明の1段落目は、次の1文です。

When fetching objects from a malicious repository, Git LFS may execute an arbitrary command or binary after failing to sufficiently restrict the set of configuration options defined in an .lfsconfig file in the repository.

訳すと、「悪意のあるリポジトリからオブジェクト(大きなファイルの中身)を取ってくるとき、Git LFS は、リポジトリの中の .lfsconfig に書かれた設定を十分に絞れず、任意のコマンドやプログラムを動かすことがある」です。.lfsconfig は、リポジトリの中に置ける、Git LFS の設定のファイルです。

直し方について、告知は、ある種類の設定を、手元の Git の設定からだけ読むようにした、と書いています。この記事は、設定の名前や書き方には触れません。

公式サイト(git-lfs.com)のトップページにも、「セキュリティの更新。全員 3.8.1 に上げるように」という知らせが出ています(原文は "Git LFS security update: All users should update to 3.8.1.")。

たとえ話で見ると

まず、たとえ話で壊れている場所を見ます。

荷物が届く受付があります。受付には「持ち込んでよい物の一覧」があり、一覧にない物は通さない決まりです。ところが、検査の係が、一覧にない物の一部を見逃していました。壊れているのは、荷物を一覧のとおりに仕分けるところです。悪意のある荷物を受け取ると、手元の機械を、外から好きに動かされる恐れがあります。

告知の言い方では、こうなります。たとえ話の荷物は、悪意のあるリポジトリから取ってくる物です。一覧は、リポジトリの中の設定のファイル .lfsconfig に書いてよい設定の決まりで、告知は、書いてよい設定は限られているのに、その仕分けに抜けがあった、と書いています。起きることは、悪意のあるリポジトリを使うと、手元で任意のコマンドやプログラムが動きうる、です。

点数と CVE の番号は?

重さは high です。点は、Git LFS の告知(GHSA)が CVSS 4.0 で付けた 8.6 です。告知(GHSA)には、10月24日14時45分ごろの時点で、CVSS 3.1 の点は付いていません。ベクターの UI:P は、CVSS 4.0 の仕様では、狙われた利用者の、限られた(本人が意図しない)操作が要る、という意味です。

2026年10月24日14時45分から14時57分ごろ(日本時間)に見た範囲では、CVE の記録は、まだ公開されていません。CVE の番号は予約済み(RESERVED)のままで、CVE の記録を引くと「記録が無い」と返ります。NVD(アメリカの脆弱性データベース)にも、GitHub の全体の一覧(Advisory Database)にも、OSV にも、まだありません。だから、番号で調べても出てこないことがあります。出典は Git LFS の告知(GHSA)です。点数や CVE の読み方は、脆弱性の知らせの読み方にまとめています。

当たる版と、直った版

告知は、「この問題は 1.3.0 以降のすべての版にあり、v3.8.1 で直った。全員 v3.8.1 に上げるように」と書いています(原文は "This problem exists in all versions since 1.3.0 and is patched in v3.8.1. All users should upgrade to v3.8.1.")。告知の欄の書き方は、次のとおりです。

系統当たる版(告知の欄)直った版
3 系3.0.0〜3.8.03.8.1
1 系・2 系1.3.0〜2.13.3欄は空(告知は 2 系の直した版を挙げていないので、3.8.1 へ)

3.8.0 は、2026年8月28日9時23分(日本時間)に出た版で、これも当たります。

同じ 3.8.1 で、ほかに 3 件も直った

同じ 3.8.1 で、ほかに 3 件の脆弱性も直りました。番号と、告知の題の訳だけを並べます。

CVE告知の題の訳
CVE-2026-105802細工した Git の設定で、任意のコマンドが動きうる
CVE-2026-69261リダイレクトのあと、HTTP のヘッダーが漏れうる
CVE-2026-69260細工した SSH の URL で、任意の遠隔のコマンドを試みうる

中身と点数は、この記事では書きません。どれも 3.8.1 に上げれば直ります。

自分の版を見る:git lfs version

版を見るコマンドは git lfs version です(Git LFS の man ページの「版の番号を出す」)。手元で流した結果を並べます。

# Mac:公式の v3.8.1 の zip を一時的に置いて流した
git-lfs/3.8.1 (GitHub; darwin arm64; go 1.27.3; git a662a6db)

# Ubuntu 26.04 の apt の git-lfs(Docker のコンテナの中)
git-lfs/3.7.1 (GitHub; linux arm64; go 1.25.0)

# Debian 13 の apt の git-lfs(Docker のコンテナの中)
git-lfs/3.6.1 (GitHub; linux arm64; go 1.24.4)

読み方は、git-lfs/ の後ろの番号が版です。上の例では、Mac は git-lfs/3.8.1、Ubuntu 26.04 は git-lfs/3.7.1、Debian 13 は git-lfs/3.6.1 です。

手元の Mac の Apple の Git(/usr/bin/git)では、git lfs version が git: 'lfs' is not a git command. と出て、Git LFS が入っていませんでした。ほかの Mac で同じかは、確かめていません。

Windows の出力は、この記事では載せません。Windows では流していません。

Windows:Git for Windows を 2.56.0(3) に上げる

Git for Windows 2.56.0(3)(タグの名前は v2.56.0.windows.3。同じ版です)は、2026年10月23日4時10分に出た版で、10月24日14時54分に見た時点で最新の版です。セキュリティの直しの版で、リリースノートは、Git LFS を 3.8.1 に上げて CVE-2026-105803 を直した、と書いています。Git for Windows の FAQ は、2.56.0(3) より古いなら、上げることを強く勧める、と書いています。

「(3)」は、Git for Windows 独自の重要な直しが要るときに、Git の同じ版のまま出す「番外の版」の印です。

Git LFS は同梱されていて("Comes with Git LFS v3.8.1")、インストーラーの源では、既定で選ばれています。

上げ方は、FAQ にある2つです。

  1. 新しいインストーラーを取って、入れ直す
  2. git update-git-for-windows を打つ。自動の更新を入れていてもいなくても、手で打てます

上げたあと、git lfs version の版が 3.8.1 かを見ます。3.8.1 と出なかったら、Git for Windows を 2.56.0(3) 以降のインストーラーで、入れ直します。

同じ版で、OpenSSH は 10.6p1、cURL は 8.23.0 にも上がりました(Git for Windows の OpenSSH は、GitHub に SSH でつなぐ記事で扱っています)。

同じ版には、認証局の件(eMudhra の中間認証局の件)への対応も入っています(→ HTTPS の証明書の鍵が漏れた件)。

Mac:Homebrew の git-lfs を上げる

Homebrew の git-lfs は、3.8.1 です。式(formula)の更新は10月23日5時8分、ビルド済みの物は5時28分(日本時間)でした。上げるには、次のようにします。

brew upgrade git-lfs

名前を書くと、その式だけを上げます。Homebrew の文書によると、既定では、brew upgrade の前に Homebrew 自身の更新(brew update)が自動で走ります(24時間に1回)。

手元の Homebrew は、更新の前の写しのため、brew info が 3.8.0 と出ました。brew update のあとで見ます。壊れているわけではありません。

上げたあと、git lfs version の版が 3.8.1 かを見ます。

Homebrew の git は、Git LFS を依存に持ちません。Git LFS は、別に入れる物です。公式サイトのダウンロードも、v3.8.1 になっています。

Linux(Ubuntu・Debian):直しはまだ出ていない(2026年10月24日時点)

2026年10月24日14時49分から14時59分ごろ(日本時間)に見た範囲では、次のとおりでした。

  • Debian のセキュリティの追跡に、CVE-2026-105803 はありません(「一致なし」と出ます)。Debian の git-lfs は、trixie(13)が 3.6.1-1+deb13u1、bookworm(12)が 3.3.0-1+deb12u2(security)です
  • Ubuntu の CVE のページは、開けませんでした。Ubuntu の CVE の追跡のリポジトリにも、この番号のファイルはありません
  • Ubuntu の git-lfs は、10月22日より後に新しい版が上がっていません

手元のコンテナ(Ubuntu 26.04・Debian 13)で、apt-cache policy git-lfs を流した結果です。どちらも、入っている版と候補の版は同じでした。

# Ubuntu 26.04
$ apt-cache policy git-lfs
  Installed: 3.7.1-1
  Candidate: 3.7.1-1

# Debian 13
$ apt-cache policy git-lfs
  Installed: 3.6.1-1+deb13u1
  Candidate: 3.6.1-1+deb13u1

手元の Mac(arm64)の上の Docker で流したので、arm64 の版です。OS のパッケージは、元の番号のまま直しを取り込むことがあるので、直ったかどうかは番号ではなく各 OS の追跡で見ます。追跡にまだ行が無いことは、当たらないという意味ではありません。この件では、どちらの追跡にも CVE の行がまだ無い、というところまでが分かったことです。

告知の回避策は、次のとおりです(原文は "No single workaround exists other than to disable Git LFS entirely. As far as possible, users and administrators should avoid cloning repositories from untrusted sources.")。Git LFS を丸ごと無効にする以外に、1つで効く回避策は無い。できる限り、信頼できない出どころのリポジトリを clone しないように、という意味です。上げられない間は、信頼できない出どころのリポジトリを clone しません(→「すぐ上げられないときは?」)。

GitHub Desktop を使っている人は?

GitHub Desktop は、自分の中に、専用に作った Git と Git LFS を持っています。ターミナルで見る git lfs version とは別です。

2026年10月24日14時51分から14時55分ごろ(日本時間)に見た範囲では、GitHub Desktop のリリースのページに、この件の告知はありません。安定版の最新は、10月14日の 3.6.7 です。

Desktop の告知が出るまでは、信頼できない出どころのリポジトリを、Desktop で clone しません。

すぐ上げられないときは?

告知の回避策の原文は、次の2文です。

No single workaround exists other than to disable Git LFS entirely. As far as possible, users and administrators should avoid cloning repositories from untrusted sources.

訳すと、「Git LFS を丸ごと無効にする以外に、1つで効く回避策は無い。できる限り、利用者と管理者は、信頼できない出どころのリポジトリを clone しないように」です。無効にする手順は、告知には書かれていません。

上げられる環境では、上げます。上げられない間は、信頼できない出どころのリポジトリを clone しません。apt 以外の入れ方で 3.8.1 にする手順は、この記事では扱っていません。

悪用はされている?(2026年10月24日時点)

2026年10月24日14時45分から14時57分ごろ(日本時間)に見た範囲では、悪用が確かめられた、という文は見つかりませんでした。

出どころ確かめたこと
CISA の KEV(悪用が確かめられた一覧)版 2026.10.23(1756件)に、CVE-2026-105803 はありません。同じ版で直った3件もありません
CISA が CVE の記録に付ける評価(SSVC)CVE の記録がまだ公開されていないので、欄そのものがありません
JPCERT/CC の注意喚起の一覧(最終更新は10月23日)Git LFS・Git for Windows の項はありません
IPA の重要なセキュリティ情報の一覧Git LFS の項はありません(10月の最新は10月22日)
JVN の一覧(最終更新は10月23日)Git LFS の項はありません。JVN iPedia は止まっていて、検索できませんでした
開発元の3つ(告知・リリースノート・公式サイト)悪用の文は、ありません

PoC(弱点が本当にあることを示すための試しのコード)そのものを探したわけではありません。

悪用が確かめられていないことは、悪用されていない、という意味ではありません。脆弱性の知らせの読み方にあるとおり、KEV に無いことは、悪用されていない証明ではありません。PoC は悪用に数えませんが、PoC が出ていないことも、安全の証明にはなりません。上に書いたのは、この時刻までに見つかった範囲です。

悪用が確かめられていても、いなくても、やることは同じで、上げます(→「当たる版と、直った版」)。

よくある質問

Git LFS を使っている覚えがありません。関係ありますか?

関係することがあります。Git for Windows は Git LFS を同梱していて、インストーラーの源では、既定で選ばれています。GitHub Desktop も、中に持っています。手元の Mac の Apple の Git には、入っていませんでした。自分の環境は、git lfs version で見ます(→「自分の版を見る:git lfs version」)。

clone しただけで、コマンドが動きますか?

告知が書くのは、「悪意のあるリポジトリから取ってくるとき」までです。Git LFS は、大きなファイルの中身を、必要なときに自動で取ってくる(たとえば、そのファイルを含むブランチを checkout したとき)と、Git LFS の説明書は書いています。どの操作で起きるかを、告知は書いていないので、clone のあとの操作(checkout など)を選んで避けようとはしません。上げられる環境では上げ、上げられない間は、信頼できない出どころのリポジトリを clone しません。

CVE-2026-105803 を NVD で調べても出てきません。なぜですか?

2026年10月24日14時46分ごろの時点で、CVE の記録が予約済みのままで、公開されていないためです。出典は、Git LFS の告知(GHSA)です(→「点数と CVE の番号は?」)。

apt の git-lfs は、いつ直りますか?

分かりません。10月24日15時ごろに見た範囲では、Ubuntu・Debian の直しは出ていません。OS の直しは、3.8.1 の番号にならないことがあります(OS のパッケージは、元の番号のまま、直しを取り込むことがあります)。直ったかは、各 OS の追跡で見ます。出るまでは、信頼できない出どころのリポジトリを clone しません(→「Linux(Ubuntu・Debian):直しはまだ出ていない(2026年10月24日時点)」)。

Git for Windows の自動の更新を入れています。それで足りますか?

FAQ は、自動の更新を入れていてもいなくても、git update-git-for-windows を手で打てる、と書いています。上げたあと、git lfs version を見ます(→「Windows:Git for Windows を 2.56.0(3) に上げる」)。

自分の環境で確かめること(チェックリスト)
  • git lfs version で版を見たか。3.8.1 より前なら上げたか(→「自分の版を見る:git lfs version」)
  • Git for Windows を 2.56.0(3) に上げ、上げたあと git lfs version が 3.8.1 かを見たか(→「Windows:Git for Windows を 2.56.0(3) に上げる」)
  • Mac の Homebrew は、brew upgrade git-lfs をし、上げたあと git lfs version が 3.8.1 かを見たか(→「Mac:Homebrew の git-lfs を上げる」)
  • Linux の apt の人は、直しが出るまで、信頼できない出どころのリポジトリを clone しないでいるか(→「Linux(Ubuntu・Debian):直しはまだ出ていない(2026年10月24日時点)」)
  • GitHub Desktop を使っているなら、Desktop の告知を見ているか(→「GitHub Desktop を使っている人は?」)
  • 悪用の状況と CVE の記録を、上の時刻より後に開き直したか(→「悪用はされている?(2026年10月24日時点)」)

まとめ

  • 2026年10月23日(日本時間)に、Git LFS v3.8.1 が出て、CVE-2026-105803 が直った。悪意のあるリポジトリから取ってくるときに、任意のコマンドやプログラムが動きうる件。点数は、Git LFS の告知(GHSA)が CVSS 4.0 で付けた 8.6
  • 当たるのは 1.3.0 以降のすべての版。直ったのは 3.8.1。同じ版で、ほかに3件(CVE-2026-105802・CVE-2026-69261・CVE-2026-69260)も直った
  • 自分の版は git lfs version で見る。git-lfs/ の後ろの番号が版
  • Windows は Git for Windows 2.56.0(3) に上げる。Mac の Homebrew は brew upgrade git-lfs
  • Linux の apt は、10月24日15時ごろに見た範囲では、Ubuntu・Debian の直しが出ていない。GitHub Desktop も、この件の告知が出ていない。どちらも、出るまでは、信頼できない出どころのリポジトリを clone しない
  • 告知は、Git LFS を丸ごと無効にする以外に、1つで効く回避策は無い、と書いている。無効にする手順は、告知に書かれていない
  • 悪用は、10月24日14時45分から14時57分ごろに確かめた範囲では、確認の文が見つからなかった。ただし、KEV に無いことは、悪用されていない証明ではない
  • この記事で確かめていないこと:Windows での git lfs version・git --version・git update-git-for-windows の出力、Git for Windows のインストーラーの中の Git LFS の版、Ubuntu・Debian がいつ直すか、RHEL・Fedora・Alpine・WSL、GitHub Desktop の安定版の中身、Visual Studio・VS Code など Git を使うほかの道具、MacPorts・Chocolatey・winget・Scoop の版

参考資料

この記事の内容は、2026年10月24日(日本時間の14時45分から15時ごろ)に開いた文書をもとにしています。CVE の記録・NVD・各 OS の直しは、これから変わります。

※この記事は、2026年10月24日時点の公式の資料と照らして確かめています。誤りに気づいたらお問い合わせからお知らせください。

PR
PR
タイトルとURLをコピーしました