概要
PythonオブジェクトのJSONシリアライズ・デシリアライズライブラリであるjsonpickle(バージョン2.0.0)において、py/reprオブジェクトを含む悪意あるJSONペイロードをデシリアライズすることで任意のPythonコマンドが実行される脆弱性が確認されました(CVE-2021-47952)。
py/reprディレクティブを含むJSONを作成することで、デシリアライズ時にeval関数が呼び出され、攻撃者が制御するコードが実行されます。信頼できないソースからのJSONデータをjsonpickleで処理している場合、深刻なリスクとなります。
なお、CVE IDは2021年に採番されていますが、2026年5月26日にNVDでの評価・更新が行われました。
CVSSベクトル
| 項目 | 値 |
|---|---|
| CVSSスコア | 9.8(Critical) |
| CWE | CWE-94(コードインジェクション) |
| 攻撃元区分(AV) | ネットワーク |
| 攻撃条件の複雑さ(AC) | 低 |
| 必要な特権レベル(PR) | 不要 |
| ユーザー関与(UI) | 不要 |
| 機密性への影響(C) | 高 |
| 完全性への影響(I) | 高 |
| 可用性への影響(A) | 高 |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| jsonpickle | jsonpickle team | 2.0.0(修正バージョンを要確認) |
修正バージョンと回避策
- 修正: 最新バージョンへのアップグレードを推奨(
pip install --upgrade jsonpickle) - 根本的対策: 信頼できないデータをjsonpickleでデシリアライズしないアーキテクチャへの見直し
- デシリアライズが必要な場合は、
jsonpickle.decode(data, safe=True)の利用や入力の厳格なバリデーションを検討してください
関連リンク
データソース: NVD (NIST)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
