脆弱性
GitPython の GitConfigParser において、設定ファイルを読み込み、無関係な変更を加えて再書き込みする際に、複数行にわたる設定値が不適切に処理される脆弱性が存在する。攻撃者が細工した「休眠状態」の複数行設定を含むファイルを GitPython が処理して書き戻すと、その一部が core.hooksPath などの有効な指令としてファイルに注入される。これにより、次にコミットやマージなどの Git 操作が実行された際、攻撃者が指定した任意のスクリプトが実行される。この問題は、新規の書き込み引数に対するチェックは行われていたものの、既存ファイルの読み込みから再シリアライズまでの過程に不備があったことに起因する。
対象ソフト
GitPython は Python で Git リポジトリを操作するためのライブラリである。自動化ツールや CI/CD パイプラインなどで、プログラムから Git 操作を行う際に広く利用されている。
影響
攻撃者によって細工された設定ファイルを含むリポジトリを GitPython で操作し、設定の更新が行われた場合、その後の Git 操作(コミット、チェックアウト、マージ等)をトリガーとして任意のコードが実行される可能性がある。
対応策
GitPython 3.1.59 以降にアップグレードすること。