GitLab の深刻な脆弱性 CVE-2022-41903/CVE-2022-23521 が FIX:RCE の可能性

Git patches two critical remote code execution security flaws

2023/01/17 BleepingComputer — GitLab が、2つの深刻なセキュリティ脆弱性に対してパッチを適用した。それらは、ヒープバッファ・オーバーフローに起因するものであり、悪用に成功した攻撃者に、任意のコード実行を許すものである。3つ目の Windows 固有の脆弱性は、信頼できない検索パスに起因するものであり、Git GUI ツールに影響を及ぼす。未認証の脅威者に対して、信頼できないコードを、容易に実行させる可能を持つ。最初の2つの脆弱性である CVE-2022-41903 (commit formatting mechanism) と、CVE-2022-23521 (gitattributes parser) に関しては、v2.30.7 によりパッチが適用されている。


3つ目の脆弱性 CVE-2022-41953 に関しては、パッチ待ちの状況だが、Git GUI ソフトウェアを用いたリポジトリのクローン、および、信頼できないソースからのクローンを避けることで、この問題を回避できる。

X41 の Eric Sesterhenn/Markus Vervier と、GitLab の Joern Schneeweisz が、OSTIF が主催する Git セキュリティ・ソースコード監査の一環として、これらの脆弱性を発見したとのことだ。

彼らは、「発見された最も深刻な問題は、攻撃者が clone または pull 操作中にヒープベースのメモリ破壊を引き起こし、コードの実行へといたる可能性である。もう1つ深刻な問題は、Git 悪用者が頻繁に行うアーカイブ操作の際に、コード実行が可能になることだ。

さらに、膨大な数の整数関連の問題が確認され、サービス拒否や、領域外の読み取り、大きな値の入力などに対する、不適切な処理につながる可能性がある。

PackageAffected versionsPatched versions
git-for-windows<=2.39.0(2)>=2.39.1
git<= v2.30.6, v2.31.5, v2.32.4, v2.33.5, v2.34.5, v2.35.5, v2.36.3, v2.37.4, v2.38.2, v2.39.0>= v2.30.7, v2.31.6, v2.32.5, v2.33.6, v2.34.6, v2.35.6, v2.36.4, v2.37.5, v2.38.3, v2.39.1

いずれのケースにおいても、一連の脆弱性を悪用する攻撃に対抗するためには、最新の Git リリース v2.39.1 にアップグレードすることが最も効果的である。

リモートコード実行の脆弱性 CVE-2022-41903 に対して直ちにアップデートできないユーザーは、脆弱な Git 機能の悪用を防ぐために、以下の対策を取ることも可能だ。

  • 信頼できないリポジトリでは ‘git archive’ を無効にする
  • 信頼できないリポジトリでのコマンド実行を回避する

また、git archive が git daemon 経由で公開されている場合には、信頼できないリポジトリで作業する際に “git config –global daemon.uploadArch false” コマンドを実行して、git archive を無効化すべきである。

GitLab は、「問題の影響を受けるバージョンを実行している全インストールに対して、可能な限り早急に、最新バージョンへのアップグレードを強く推奨する」と警告している。

Qiita の GitLab って何? には、GitLab とは GitHub にインスパイアされて作られた、Git リポジトリをホスティングをするソフトウェアと紹介されています。3つの脆弱性のうちの2つに対しては、すでにパッチが適用され、残る1つには、回避策が提供されています。これまでの、GitLab に関するトピックとしては、以下のものがあります。

2022/08/23:GitLab の深刻な RCE の脆弱性 CVE-2022-2884
2022/06/03:GitLab のアカウント乗っ取りの脆弱性 CVE-2022-1680
2022/04/01:GitLab のアカウント乗っ取りの脆弱性 CVE-2022-1162