概要
Ajax.orgのJavaScriptライブラリであるjsPDFには、重大なセキュリティ上の脆弱性が存在し、この問題は数百万の開発者とそのユーザーを危険にさらしています。この脆弱性(CVE-2026-25755)により、攻撃者はaddJSメソッドを通じてPDFオブジェクトインジェクションを行うことができます。
脆弱性の詳細
CVE-2026-25755はCVSSスコア8.8(高)と評価され、攻撃者は悪意のある入力を生成し、生成されたPDFファイルが任意のアクションを実行するように設計することができます。この脆弱性により、ユーザーからの入力が適切に検証されていないため、addJSメソッドを通じてJavaScriptコンテキストから逃げ出すことが可能です。
影響範囲と脅威
- JavaScript独立の実行: JavaScriptが無効化されている場合でも、攻撃者が任意のアクションをトリガーすることができます。
- ドキュメント構造の操作: セキュリティプロパティやUIリデイレシング、フィッシング攻撃を可能にするようなオブジェクト(/Encrypt, /Signatures, /Annots)を注入することができます。
- クロスビューアペイロードの信頼性: PDFオブジェクト階層に従ってパースと実行が行われるため、異なるプラットフォームで一貫したペイロードの実行が可能です。
影響を受けるバージョンと修正版
影響を受けるバージョン: < 4.1.0
修正版: >= 4.1.0
対策
- jsPDFの最新バージョン(4.1.0以降)にアップグレードする。
- 入力を厳密に検証し、信頼できないデータがPDF生成に使用されないようにする。
- npm auditやSnykなどのツールを使用して依存関係をスキャンする。
- 生成されたPDFファイルを複数のビューアでテストし、異常がないか確認する。
元記事: https://gbhackers.com/jspdf-millions-developers-exposed/
