目次(5)

CVE-2026-48705
医療画像向け機械学習のフレームワーク MONAI の DICOM 読み込み(PydicomReader)が、位置・間隔などの数値に NaN(非数)や無限大が入っていても検証せずに変換行列を作り、推論の途中で異常終了したり、気づかないまま誤った結果を出したりする不具合(CVE-2026-48705、GHSA-6hp3-vr39-rqw8)が公開されました。GitHub の構造化データでは深刻度 Critical、CVSS v3.1 は 9.3 です。修正版は MONAI 1.6.1 です。影響を受けるのは、1.6.1 より前の MONAI を使い、外部から受け取った DICOM ファイルを読み込む構成です。勧告は、MONAI 上の推論サーバー MONAILabel の既定の REST API(認証なし)を攻撃の経路として説明しています(下の「影響を受ける条件」を参照)。
何が起きるか
- 勧告によると、DICOM の数値型(DS・IS)の値を読む pydicom が、
NaN・infを既定の設定では拒否せずに受け入れます。MONAI のPydicomReaderは、そこから得た PixelSpacing・ImagePositionPatient などで 4×4 の変換行列(affine)を作る際に、有限な数かどうかを確認していませんでした。 - NaN が行列に入ると、その後の空間変換・推論・書き出しの流れにそのまま伝わります。
- 勧告の例では、約 132 KB の細工した DICOM を MONAILabel の
PUT /datastore/(既定で認証なし)から登録し、推論を呼ぶと、書き出しの段階で HTTP 500 になり、1 回あたり約 16〜18 秒の計算が無駄になったと説明しています。登録した画像は保存されるため、同じ画像 ID への推論は再び失敗するとしています。 - 書き出しで失敗しない場合は、警告なしに幾何的に誤った分割結果が HTTP 200 で返る可能性があるとも説明しています(勧告の記載で、当サイトでは再現していません)。
- 勧告は、同じ読み込みを使う MONAI の関連リポジトリ(MONAI Deploy App SDK など)にも影響が及ぶとしています。
- 悪用の報告は確認できていません。CISA の KEV には載っていません(10/30 版の一覧で確認)。
影響を受ける条件
| 項目 | 内容 |
|---|---|
| 対象 | pip パッケージ monai の 1.6.1 より前(GitHub の構造化データ) |
| 前提 | 信頼できない DICOM を PydicomReader で読み込むこと。勧告の例は、ネットワークから到達できる認証なしの MONAILabel サーバー |
| 評価 | GitHub の構造化データは CVSS v3.1 9.3(Critical)。勧告の本文には「8.7 High」とあるが、同じベクトル(AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:L)の計算は 9.3 になる。どちらの数字も本記事では独自には検証していない |
| 修正版 | 1.6.1(2026-09-27 UTC リリース) |
| 弱点の分類 | CWE-20(入力検証の不備) |
修正の内容
- 修正コミット 434c094(2026-09-03 UTC、プルリクエスト #9087)は、
PydicomReaderの変換行列を作る処理で、ImageOrientationPatient・ImagePositionPatient・PixelSpacing・lastImagePositionPatient などの値が有限かを確かめ、NaN・無限大ならValueErrorで止めます。合成後の行列が有限でない場合も止めます。変更はmonai/data/image_reader.pyと、テストtests/data/test_pydicom_reader.pyです。 - Git の比較で、このコミットは 1.6.1 のタグに含まれ(タグ側が 27 先、遅れ 0)、1.6.0 には含まれません。
- この修正が止めるのは MONAI 側の変換行列の作成です。勧告が挙げる pydicom 側の値の受け入れや、MONAILabel の登録時の検証が変わったかは、本記事では確認できていません。
対応
- MONAI を 1.6.1 以上に更新します。
- MONAILabel などで、外部から DICOM を受け付けるサーバーは、認証やネットワークの制限で到達できる相手を絞ることを検討します(勧告が示す回避策ではなく、本記事の推定です)。
- 更新後も、受け付けた DICOM の数値が有限かを入口で確認する方法があります(勧告の「推奨される修正」にも同趣旨があります)。
- 過去に未知の DICOM を処理した環境では、異常終了や結果の不整合が出ていないかを確認します(本記事の推定)。
未確認の点
- 悪用の報告は確認できていません。KEV にも載っていません。
- NVD には 10/31 時点でこの CVE の詳細が見つかりませんでした(掲載前か、取得できなかった可能性があり、確認できていません)。CVSS は GitHub の勧告の値です。
- EPSS は公開直後のため未算出です(10/31 時点で FIRST にデータなし)。
- 勧告の再現結果(HTTP 500、無駄になる計算時間、保存された画像の影響)は当サイトでは再現していません。
- 1.6.1 でも MONAILabel 側の登録や pydicom の挙動は変わっていない可能性があります。MONAILabel の最新版(0.8.5 が最新のリリース)が影響を受けるか、別の修正が出ているかは確認していません。
- 関連リポジトリ(Deploy App SDK、model-zoo など)への影響の範囲は、勧告の記載に基づき、個別には確認していません。
- 修正コミット(9/3)→ 1.6.1 リリース(9/27)→ GitHub 勧告(10/27)の順です。公開までの経緯は確認できていません。1.6.1 のタグには、このほかの変更も含まれます。
- 日付は、タグ・コミットは Git と GitHub の記録、公開日は GitHub の記載に基づきます。
この記事について
- 執筆・編集
- World Security 編集部
出典
- GitHub Advisory GHSA-6hp3-vr39-rqw8(GitHub)
- 修正コミット 434c094(GitHub)
- MONAI 1.6.1 リリース(GitHub)
- FIRST EPSS CVE-2026-48705(FIRST)




