jsPDF Vulnerability Exposes Millions of Developers to Object Injection Attacks
2026/02/23 CyberSecurityNews — 人気ライブラリ jsPDF において、新たに開示されたセキュリティ脆弱性 CVE-2026-25755 が、数百万の Web 開発者を PDF Object Injection 攻撃にさらしている。この脆弱性を悪用するリモート攻撃者は、生成する PDF 文書内に任意のオブジェクトおよびアクションの埋め込みが可能となる。この脆弱性は、PDF ファイルへ JavaScript コードを埋め込む addJS メソッドに影響を及ぼすものだ。

この問題は、jsPDF 内の “javascript.js” ファイルにおける、ユーザー入力に対する不適切なサニタイズに起因する。具体的には、以下の構文により、サニタイズされない入力が直接 PDF ストリームへ連結される。
this.internal.out("/JS (" + text + ")");
このロジックは、PDF 仕様における文字列区切り文字である、閉じ括弧のエスケープ処理を行わない。
したがって攻撃者は、”) >> /Action …” のようなペイロードの注入と、”/JS” 文字列の途中での終了が可能となる。そして、任意の PDF 構造を挿入し、埋め込みオブジェクトを完全に制御する状況を作り出せる。
| CVE ID | CVSS Score | Description |
|---|---|---|
| CVE-2026-25755 | 8.8 (High) | PDF Object Injection in jsPDF’s addJS method allows arbitrary object injection and action execution in generated PDFs. |
この脆弱性は、一般的な JavaScript ベースの XSS 攻撃とは異なるものであり、PDF オブジェクト階層を直接操作する点に特徴がある。そのため、ビューアで JavaScript が無効化されている場合でも、悪意のアクション実行や文書構造の改変が可能となる。
以下のような重大な影響が起こり得る
JS 無効環境での実行:注入された PDF アクション (例:/OpenAction) が自動実行され、JavaScript 制限が回避される。
- 文書改変:攻撃者は “/Annots” や “/Signatures” セクションの注入/暗号化/改変が可能となる。それにより、メタデータ改竄/フィッシング実行/PDF 外観改変が可能となる。
- クロスビューア・リスク:特にモバイルや組み込み型などの軽量 PDF ビューアは、PDF オブジェクトの解析仕様に厳密に準拠している。そのため注入された悪意のアクションが実行されやすくなる。
この問題を発見したセキュリティ研究者 ZeroXJacks は、細工された addJS ペイロードにより、文書オープン時に任意 PDF アクションを発火させる PoC を実証した。
この問題が示すのは、ユーザー入力から動的に PDF を生成するアプリケーションにおける深刻なリスクである。根本的な原因は、PDF 仕様に基づく入力検証およびエスケープ処理の欠如である。
開発者にとって必要なことは、jsPDF バージョン 4.1.0 以降へと、速やかにアップデートすることだ。このバージョンでは、括弧およびバックスラッシュの適切なエスケープ処理により入力が正しくサニタイズされる。
パッチ適用までの間は、addJS または関連メソッドに対して、信頼できない入力やユーザー生成コンテンツを埋め込むことは回避すべきである。そして、クライアント側 PDF 生成ワークフローにおいて、厳格な入力検証を実施すべきである。
Web 開発において広く使われている PDF 生成ライブラリ「jsPDF」に、PDFの内部構造を不正に書き換えられる深刻な脆弱性 CVE-2026-25755 が発見されました。この問題の核心は、PDF 内に JavaScript を埋め込むための addJS メソッドにあります。ユーザーから入力されたテキストを、プログラムが PDF 形式に変換する際に、PDF のデータ構造を定義する “閉じ括弧” などの特殊文字を適切にエスケープせず、そのまま PDF のデータストリームに連結してしまう不備がありました。
今回の脆弱性は、一般的な JavaScript ベースの XSS とは性質が大きく異なり、PDF のオブジェクト階層を直接操作する、PDF Object Injection という手法を許すものです。これにより、たとえ PDF ビューア側で JavaScript の実行が制限されていても、文書を開いた瞬間に外部プログラム呼び出しなどのアクションが実行される可能性があります。ご利用のチームは、ご注意ください。
You must be logged in to post a comment.