TORIPIYO DIARY

recent events, IoT, programming, security topics

wkhtmltopdfのCVE-2022-35583

wkhtmltopdfでCVE-2022-35583が報告されていました。

NVD - CVE-2022-35583

cyber-guy.gitbook.io

こちらのブログによると、どうやら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

out.pdf

wkhtmltopdfの利用者は、画像などの外部コンテンツが表示された状態のhtmlページをpdf化したいはずなので、この挙動が脆弱性なのかどうかというと意見の分かれるところではないかと思います。

github.com

しかし、CVE番号がラベリングされており、このような情報漏洩の可能性を検討しないまま wkhtmltopdf をWEBアプリのpdf出力機能の実装に採用しているところもあるのではないかと思います。

wkhtmltopdfを利用してpdfを作成している処理において、ユーザーからの任意の入力値がhtmlコードに含まれる実装となっていないか確認する必要はありそうです。