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

PyMuPDF CVE-2026-120752(CVSS v3.1 7.5): add_freetext_annot() の吹き出し線の点数を検証せず、スタックバッファーオーバーフローで落ちるか任意コード実行の恐れ

目次(7)

CVE-2026-120752

PDF 処理ライブラリー PyMuPDF の JM_set_annot_callout_line() に、スタックバッファーオーバーフローの問題 CVE-2026-120752 が公開されました。NVD は 2026-11-02 に登録しました。呼び出し側が渡した吹き出し線(callout)の点を、3 要素の固定長スタック配列にそのままの個数でコピーするため、Page.add_freetext_annot() に 4 点以上を渡すとスタックフレームが上書きされ、プロセスのクラッシュやコード実行につながりうるとされています。NVD の状態は Received(未分析)で、評価は VulnCheck が付与した CVSS v3.1 の 7.5(HIGH)です。

概要

項目内容
CVECVE-2026-120752
製品PyMuPDF(Python 向け PDF 処理ライブラリー)。影響版は 1.25.3 以上 2.0 未満
問題JM_set_annot_callout_line() が、吹き出し線の点を固定長 3 要素のスタック配列に、呼び出し側が渡した個数でコピーする(CWE-121、スタックベースのバッファーオーバーフロー)
攻撃条件ネットワーク経由(AV:N)、攻撃の難易度は高い(AC:H)、低い権限が必要(PR:L)、ユーザー操作不要
結果クラッシュ、またはコード実行の恐れ。機密性・完全性・可用性のすべてが High
  • 引き金になるのは、アプリケーションが Page.add_freetext_annot() の callout 引数に、利用者や外部の入力から決まる点の列を渡す場合です。PyMuPDF を呼び出すコードの側が、点の個数を制限していなければ成り立ちます。
  • 本ライブラリーを使うだけで直ちに攻撃を受けるわけではなく、アプリケーションが外部入力を callout 引数に渡す構成が前提です。そのような構成がどの程度あるかは未確認です。

CVSS

評価元種別版スコアベクター
VulnCheck主(Primary)v3.17.5(HIGH)AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
VulnCheck副(Secondary)v4.07.7(HIGH)AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H

低い権限が必要で、攻撃の難易度も高いため、スコアは 9 未満です。本サイトでは high としています。

影響範囲

  • PyMuPDF 1.25.3 以上 2.0 未満が影響を受けるとされています(VulnCheck の記載)。
  • PDF のフリーテキスト注釈を、外部入力に基づいて自動生成するサービスやスクリプトが、影響を受けうる立場にあります。

修正

  • 修正版は 2.0 とされています(影響版が「2.0 未満」のため)。上流にはコミット(d4298ead)が公開されています。
  • 2.0 を含む各版の変更内容の詳細、および 1.x 系の修正版の有無は未確認です。
  • 当面は PyMuPDF を 2.0 以降へ更新する計画を立ててください。

当面の対策(一般的なもの)

  • add_freetext_annot() の callout 引数に渡す点の個数を、アプリケーション側で 3 点以下に制限する。外部入力をそのまま渡さない。
  • PyMuPDF を 2.0 以降へ更新する。
  • PDF の処理を、権限を絞った別プロセスやコンテナーで動かす。
  • 緩和策が実際に有効かどうかは、利用環境での検証が必要です(未確認)。

数値と出典(2026-11-03 時点)

項目内容
NVD の状態Received
CVSSv3.1 7.5(HIGH)、v4.0 7.7(HIGH)。いずれも VulnCheck
EPSS未算定(FIRST、2026-11-03 時点)
KEV掲載なし(CISA のカタログを確認)
出典NVD、VulnCheck、PyMuPDF の修正コミットとリリース、FIRST、CISA

未確認の点

  • 実際の攻撃での悪用の有無(KEV 掲載なし、EPSS は未算定)。
  • 実際にコード実行まで到達できるか(クラッシュ以上の影響は、記載上の「恐れ」の段階)。
  • 1.x 系での修正版の有無と、2.0 の変更の詳細。
  • 外部入力を callout 引数に渡している実際のアプリケーションの範囲。
  • 緩和策が有効に働くかどうか。
  • NVD による独自の分析(Received のため)。

この記事について

出典

この記事を共有