---
title: "dcmjs 0.52.0 より前の CVE-2026-46350: DICOM の数値項目（DS・IS）の検証不足で Infinity・NaN が混入し、画像の計算が狂う恐れ"
url: https://n-t-p.io/worldsecurity/articles/dcmjs-cve-2026-46350-decimalstring-integerstring-infinity-nan-dicom-parsing
lang: ja
kind: 速報
category: 脆弱性・CVE
author: World Security 編集部
published: 2026年11月7日
updated: 2026年11月7日
severity: 緊急
cve: CVE-2026-46350
---

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

> **TL;DR:** dcmjs 0.52.0 より前で、DICOM の小数・整数項目の検証不足により Infinity や NaN が入り、画像の位置・線量などの計算が狂う恐れ（CVE-2026-46350、CVSS v3.1 9.1・PR:N）。0.52.0 で修正。ただし情報漏えいやコード実行の記載はない。悪用は未確認。

**要点**
- DecimalString・IntegerString が有限の数かを確かめず Number に渡し、指数表記のあふれで Infinity、符号だけの文字で NaN が入る。
- 整数項目は指数表記や符号付き 32 ビットの範囲外の値も受け入れる。
- 空間の位置・表示の設定・線量の換算・フレーム数・3D 再構成の計算が誤る、または処理が止まる恐れ。
- NVD 掲載の GitHub 評価は CVSS v3.1 9.1・PR:N で severity 案は critical。ただし漏えい・コード実行の記載はなく、使い方で深刻さが変わる。
- 0.52.0 で修正。悪用・参照先の勧告の中身・NVD 最終評価は未確認。

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（量の指定の検証不備）です。

## 影響を受ける版
| 対象 | 影響する版 | 修正版 |
|---|---|---|
| dcmjs | 0.52.0 より前 | 0.52.0 |

## 評価
| 評価元 | 版 | 点数 | ベクターの要点 |
|---|---|---|---|
| NVD に載る GitHub の評価（Secondary） | CVSS v3.1 | 9.1 | AV: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 で、変わる可能性があります）。


## 出典
- [NVD CVE-2026-46350](https://nvd.nist.gov/vuln/detail/CVE-2026-46350) — NIST NVD
- [GitHub Security Advisory GHSA-px68-xx5g-48q5（NVD の参照先。未取得）](https://github.com/dcmjs-org/dcmjs/security/advisories/GHSA-px68-xx5g-48q5) — GitHub
- [dcmjs v0.52.0 リリース（NVD の参照先。未取得）](https://github.com/dcmjs-org/dcmjs/releases/tag/v0.52.0) — GitHub
- [FIRST EPSS API](https://api.first.org/data/v1/epss?cve=CVE-2026-46350) — FIRST

---
出典: World Security（株式会社NTP） https://n-t-p.io/worldsecurity/articles/dcmjs-cve-2026-46350-decimalstring-integerstring-infinity-nan-dicom-parsing