30秒で判断
- 対応すべき人: datamodel-code-generator 0.70.0 より前を利用し、信頼できないスキーマからコードを生成するパイプラインを運用している開発者
- 対応不要な人: 本ツールを使用していない方、信頼できる自前のスキーマのみを入力としている方、すでに 0.70.0 以降へ更新済みの方
- 確認方法:
pip show datamodel-code-generatorなどでインストール済みバージョンを確認します
概要
datamodel-code-generator は、スキーマ定義から Python のデータモデルコードを生成する Python 製ツールです。0.70.0 より前のバージョンでは、入力スキーマを制御できる攻撃者がリモートコード実行を達成しうる脆弱性が報告されています。
具体的には、埋め込み改行とドットを含まない Python 式を含む悪意ある customBasePath 値を与えると、その値が識別子の検証を経ないまま、生成されるコードの from ... import ... 文へそのまま出力されます。この結果、生成されたモジュールをインポートした時点で、customBasePath に仕込まれた任意の Python コードが実行されます。
そのため、外部から受け取ったスキーマや信頼できないスキーマを入力としてコード生成を行うパイプラインでは特に注意が必要です。生成物を実行・インポートする側にも影響が及びます。信頼できる入力のみを扱う環境では、実際の悪用条件には達しません。
CVSSベクトル
| 指標 | 値 |
|---|---|
| Attack Vector | Network |
| Attack Complexity | Low |
| Privileges Required | None |
| User Interaction | None |
| CVSSスコア | 7.5 (High) |
影響を受けるソフトウェア
| 製品 | バージョン |
|---|---|
| datamodel-code-generator | < 0.70.0 |
修正バージョンと回避策
- 対策: 0.70.0 以降へアップデートしてください。直ちに更新できない場合は、信頼できないスキーマを入力にしない、
customBasePathに外部由来の値を渡さない運用で悪用を回避できます。
関連リンク
データソース: NVD (NIST), VulnCheck AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
