概要
GitPython は危険な Git オプション(--upload-pack や --receive-pack)をデフォルトでブロックしていますが、Python の kwargs として upload_pack や receive_pack を渡すとこのチェックをバイパスできます。アプリケーションが攻撃者の制御する kwargs を Repo.clone_from()、Remote.fetch()、Remote.pull()、Remote.push() に渡す場合、allow_unsafe_options がデフォルトの False であっても任意のコマンド実行が可能になります。
CVSSベクトル
| 指標 | 値 |
|---|---|
| CVSSスコア | 8.8 |
| 深刻度 | High |
| CWE | CWE-78 (OSコマンドインジェクション) |
| 攻撃元区分 | ネットワーク |
| 攻撃条件の複雑さ | 低 |
| 必要な特権レベル | 低 |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| GitPython | gitpython-developers | 3.1.30 から 3.1.47 未満 |
修正バージョンと回避策
- GitPython 3.1.47 以降にアップデートしてください
- 外部入力を
Repo.clone_from()、Remote.fetch()、Remote.pull()、Remote.push()の kwargs に直接渡さないようにしてください - kwargs のホワイトリスト検証を実装し、
upload_packやreceive_packなどの危険なパラメータを除外してください
関連リンク
データソース: NVD (NIST) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
