脆弱性・CVE速報深刻度: 緊急

dcmjs 0.52.0 より前の CVE-2026-46350: DICOM の数値項目(DS・IS)の検証不足で Infinity・NaN が混入し、画像の計算が狂う恐れ

目次(5)

CVE-2026-46350

dcmjs(医用画像の標準形式 DICOM を JavaScript で扱うライブラリ)の 0.52.0 より前に、数値項目の検証不足の欠陥(CVE-2026-46350)が NVD に登録されました。登録は 2026-11-05 で、NVD の状態は Received(受付済み)です。0.52.0 で修正されたと記載されています。

何が起きるか

  • DICOM の小数項目(DecimalString)と整数項目(IntegerString)を読み込む処理が、ゆるい正規表現で文字を整えたあと、JavaScript の Number に渡しています。有限の数かどうか、DICOM の規則に合うかは確認していません。
  • 指数表記で桁があふれると、正の無限大・負の無限大(Infinity)になります。符号付きの無限大の文字から英字を取り除くと、符号だけが残って NaN(数でない値)になる場合もあります。
  • 整数項目は指数表記や、符号付き 32 ビット整数の範囲外の値も受け入れます。
  • この値を信用するアプリでは、空間の位置計算、画面の明るさ・コントラストの設定、線量の換算、フレーム数、リスケール、3D の再構成に不正な数が入り、計算が誤ったり、処理が止まったりする恐れがあります。
  • 弱点の種別は CWE-20(入力検証の不備)と CWE-1284(量の指定の検証不備)です。

影響を受ける版

対象影響する版修正版
dcmjs0.52.0 より前0.52.0

評価

評価元版点数ベクターの要点
NVD に載る GitHub の評価(Secondary)CVSS v3.19.1AV:N/AC:L/PR:N/UI:N・機密性 なし・完全性 高・可用性 高
  • 認証なし(PR:N)かつ 9 以上のため、基準では severity は critical が案になります。
  • ただし、影響は「誤った数値による計算の誤りや処理の中断」で、情報の漏えいやコード実行の記載はありません。実際の深刻さは、dcmjs の使い方(外部から受け取った DICOM ファイルをそのまま診断や線量の計算に使うか)で大きく変わります。点数どおりに critical とするか、high に下げるかは、オーナーの判断待ちです。
  • FIRST の EPSS は、取得時点(2026-11-06)で値が算出されていません。CISA の KEV には、手元の状態ファイル上で掲載がありません。

対策として考えられること

  1. dcmjs を 0.52.0 以降に更新します。
  2. 外部から受け取った DICOM ファイルは、読み込み後に数値項目が有限の数であることを自分のコードでも確かめます。
  3. 診断や線量の計算など、結果が人の判断に直結する処理では、入力の範囲確認と結果の妥当性確認を入れます。
  4. dcmjs をどの製品が使っているかを洗い出し、更新の対象に含めます。

未確認の点

  • 実際の悪用の有無(NVD の記述に悪用の記載はありません)。
  • 参照先の勧告(GHSA-px68-xx5g-48q5)・修正のコミットとプルリクエスト・v0.52.0 リリースの中身(本稿では開いていません)。
  • 影響版の下限、dcmjs を組み込んだ製品の範囲。
  • NVD の最終評価(現在は Received で、変わる可能性があります)。

この記事について

AI の利用
本記事は AI が NVD などの公開情報をもとに作成しました。数値は取得時点(2026-11-06)のもので、未確認の点は本文に明記しています。

出典

この記事を共有