脆弱性・CVE速報深刻度: 高

pypdf 6.21.4 より前、細工した PDF で無限ループ・メモリ大量消費を起こす DoS が 7 件(CVE-2026-119203〜119209、High)

目次(6)

CVE-2026-119203

CVE-2026-119204

CVE-2026-119205

CVE-2026-119206

CVE-2026-119207

CVE-2026-119208

CVE-2026-119209

Python の PDF ライブラリ pypdf に、細工した PDF で無限ループ・長時間の処理・大量のメモリ消費を起こすサービス拒否(DoS)の脆弱性が 7 件(CVE-2026-119203〜119209)公開されました。GitHub の勧告はいずれも重大度 High で、NVD に載っている GitHub 評価の CVSS v4.0 は 7 件とも 7.1 です。6.21.3 または 6.21.4 で修正されており、最新の 6.21.4 に上げれば 7 件すべてが解消します。CISA の KEV には載っていません。EPSS は 0.27〜0.30%(10 月 31 日時点)です。

何が問題か

どれも、細工した PDF を読み込む・特定の操作をすると、CPU やメモリを使い切るタイプです。勧告が示す条件は次のとおりです。

CVE内容修正版
CVE-2026-119203trailer のない不完全なファイルを開くと無限ループになる(標準の xref テーブル読み取り中に EOF を検出できない)6.21.4
CVE-2026-119204共有リソースが多いページツリーを読むと、メモリを大量に使う6.21.4
CVE-2026-119205DictionaryObject の複製で無限ループになる6.21.4
CVE-2026-119206ページラベルを取得すると処理時間が長くなる6.21.3
CVE-2026-119207不正な辞書を読み込むと、メモリを大量に使う(strict モードの例外メッセージが原因)6.21.3
CVE-2026-119208暗号化 PDF で、誤った /Count を宣言したファイルのページ数を取得すると、処理時間・メモリが膨らむ6.21.3
CVE-2026-119209クロスリファレンスストリームを持つファイルを開くと、メモリを大量に使う6.21.3

NVD の CVSS v4.0 ベクタは 7 件とも AV:N/AC:L/AT:N/PR:N/UI:P で、影響は可用性(VA:H)だけです。UI:P は、利用者側のアプリが PDF を開く・処理する操作が要ることを示します。

影響を受ける条件

信頼できない相手の PDF(アップロード、メール添付、外部から取り込んだ文書など)を pypdf で処理しているサービスやスクリプトです。各勧告は「この操作を行う場合」という条件付きなので、実際に影響するかは、使っている機能(ページ数の取得、ページラベル、暗号化 PDF の読み取りなど)で変わります。

数値で見る

項目内容
重大度(GitHub 勧告)7 件とも High
CVSS v4.0(NVD に載る GitHub 評価)7 件とも 7.1
EPSS(2026-10-31)119203〜119208: 0.30%、119209: 0.27%
CISA KEV掲載なし
弱点の種類CWE-835(119203・119205)、CWE-400(119204・119206)、CWE-400 と CWE-405(119207)、CWE-400 と CWE-770(119208・119209)

対象と修正版

対象修正版
pypdf 6.21.4 未満(119203・119204・119205)6.21.4
pypdf 6.21.3 未満(119206〜119209)6.21.3

PyPI の最新版は 6.21.4(10 月 29 日 JST 公開)です。6.21.3(10 月 27 日 JST 公開)と 6.21.4 のリリースノートの「Security」欄に、各勧告が示す修正の PR(#4251・#4265・#4269・#4270、#4288・#4289・#4290)が載っています。勧告の公開は 10 月 31 日 8 時台(JST)で、修正版の公開が数日先でした。

対応の考え方

  • pypdf を 6.21.4 以降へ更新してください。pip show pypdf で版を確認できます。
  • すぐ更新できない間は、外部から受け取る PDF のサイズ上限、処理の時間制限、メモリ上限(ワーカーの制限など)を設けてください。勧告は暫定策として、各修正の PR の変更を取り込む方法も案内しています。
  • 他のライブラリ経由で pypdf が入っている場合もあるので、依存関係を確認してください。

確認できていない点

  • 実環境での悪用の報告は、GitHub 勧告・KEV のいずれにも見当たりません。
  • 勧告にある再現ファイルは手元では実行していません。
  • CVSS v3.1 は付いていません。v4.0 は GitHub 評価で、NVD の独自評価は確認していません。

この記事について

出典

この記事を共有