セキュリティ¶
セキュリティ修正の対象は、PyPIで公開されている最新リリースだけです。
脆弱性を報告する¶
GitHub Security Advisories から非公開で報告してください。公開Issueは作成しないでください。最初の応答は 1週間以内を目安にしています。
信頼できないPDFを扱う¶
pylopdfはRust製で実行時依存もありませんが、悪意あるPDF入力の解析には本質的な リスクがあります。
展開サイズの上限を明示する
pylopdf.open()へmax_decompressed_size=を渡してください。レンダラが遅延展開する
ページ内容も含め、読み取り可能なすべてのストリームをDocument返却前に検査します。
import pylopdf
with pylopdf.open("upload.pdf", max_decompressed_size=128 * 1024 * 1024) as doc:
preview = doc[0].get_pixmap(dpi=144)
- 画像ストリームは展開後のRGBAサイズで制限されます。
- 出力を安全に上限計算できないフィルタチェーンは、制限有効時に拒否されます。
- レンダリングは1ページ64メガピクセルまでです。
- 埋め込みJavaScriptは設計上非対応で、実行されません。
- 可能なら、信頼できないファイルの一括処理はsandboxやcontainer内で行ってください。
依存関係の監査¶
CIはpushごとにcargo auditを実行し、Rust依存ツリーをRustSecの脆弱性データベースと
照合します。
リポジトリ上の正本は
SECURITY.mdです。