概要
Python の標準ライブラリ xml.parsers.expat および xml.etree.ElementTree が、Expat のハッシュフラッディング攻撃対策に用いるエントロピーが不十分であることが判明しました(CWE-331)。この問題により、細工された XML ドキュメントを処理した際にハッシュテーブルの衝突が多発し、CPU リソースを過剰に消費させることが可能です。
本脆弱性の完全な修正には、libexpat のアップデートと Python 自体へのパッチ適用の両方が必要な点が重要です。どちらか一方のみでは完全な防御になりません。
CVSS ベクトル
| 項目 | 値 |
|---|---|
| Attack Vector | Network |
| Attack Complexity | Low |
| Privileges Required | None |
| User Interaction | None |
| Scope | Unchanged |
| Confidentiality | None |
| Integrity | None |
| Availability | High |
ネットワーク経由・認証不要でトリガー可能なため、XML を受け付ける Web API などに直接影響します。
影響を受けるソフトウェア
| 製品 | ベンダー | 影響を受けるバージョン |
|---|---|---|
| Python (CPython) | Python Software Foundation | セキュリティパッチ未適用バージョン |
| libexpat | libexpat project | 2.8.0 未満 |
修正バージョンと回避策
推奨対応:
-
libexpat を 2.8.0 以降にアップデートする
システムのパッケージマネージャー(apt / yum / brew 等)で libexpat を更新してください。 -
Python セキュリティパッチを適用する
各 Python バージョンの最新パッチリリースを適用してください。詳細は Python security-announce メーリングリストを参照してください。 -
両方の適用が必要
libexpat のみ、または Python パッチのみでは完全な保護にはなりません。
暫定的な回避策:
- 信頼できないソースからの XML データを受け付ける前に、ファイルサイズや要素数のバリデーションを実施する。
- XML パーサーへの入力を信頼済みソースのみに制限する。
関連リンク
データソース: NVD (NIST), Python Security Advisory
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
