wkhtmltopdfのCVE-2022-35583
wkhtmltopdfでCVE-2022-35583が報告されていました。
こちらのブログによると、どうやらpdfに変換するhtmlに、iframe, img, script など外部からコンテンツを取得するタグが含まれていると、コンテンツ取得後の画面がpdf化されてしまい情報漏洩につながる場合があるというものでした。
確かに、ローカル環境でhttpdコンテナを動かして、
docker run --rm -dit --name my-running-app -p 8080:80 httpd
htmlファイルをpdf化すると、iframeの中身が表示されていました。
cat test.html <html> <head> </head> <body> <iframe src="http://localhost:8080/" width="1000" height="2000"> </body> </html> wkhtmltopdf test.html out.pdf
wkhtmltopdfの利用者は、画像などの外部コンテンツが表示された状態のhtmlページをpdf化したいはずなので、この挙動が脆弱性なのかどうかというと意見の分かれるところではないかと思います。
しかし、CVE番号がラベリングされており、このような情報漏洩の可能性を検討しないまま wkhtmltopdf をWEBアプリのpdf出力機能の実装に採用しているところもあるのではないかと思います。
wkhtmltopdfを利用してpdfを作成している処理において、ユーザーからの任意の入力値がhtmlコードに含まれる実装となっていないか確認する必要はありそうです。