Gitコミュニティは、clone
およびsubmodule
コマンドに影響を及ぼすセキュリティ脆弱性を公開した。これは、脆弱性のあるマシンが悪意のあるリポジトリにアクセスした時、リモートコードの実行を可能にするというものだ。この脆弱性はMitreによってCVE–2018–17456にアサインされ、Git 2.19.1で修正された。
悪意のあるリポジトリは、ダッシュから始まるURLを含む.gitmodules
をでっち上げることで、この脆弱性を引き起こすことができる。これはgit clone --recurse-submodules
とgit submodule update --recursive
の両方に影響を与える。ダッシュから始まるURLはgit clone
もしくはgit submodule
サブプロセスに再帰的に渡され、URLをコマンドオプションとして解釈する。これはローカルマシン上で任意のコマンド実行を引き起こすことができる。この脆弱性はCVE–2017–1000117と似ている。これもダッシュから始まるssh URLをでっち上げ、gitが実行するssh
サブプロセスにオプションとして解釈させ、オプションインジェクション攻撃を可能にするものだ。現在のところ、悪用は報告されていない。
また、私たちは時間をかけて、攻撃に使われていないか、GitHub上の全リポジトリをスキャンしました。実例が見つからなかったことを報告できて幸いです(現在はこれを検出するため、誰も追加できません)。
@joernchenによる脆弱性修正のPRにあるように、修正自体は非常に簡単だ。しかし、今回の発見は.gitmodules
を全体的にチェックする良い機会となり、その内部で見つかったパスとURLの両方のチェックを厳格にすることにつながった。
前述のように、この脆弱性の修正はGit 2.19.1に含まれている。加えて、2.14.5、2.15.3、2.16.5、2.17.2、2.18.1にバックポートされている。gitはGitHub DesktopやAtomなどのGitHubプロジェクトにも統合されているため、それらにもパッチが当てられている。したがって、これらもできるだけ早急にアップグレードした方がよいだろう。
Rate this Article
- Editor Review
- Chief Editor Action