| タイトル | TheCodingMachineのGotenbergにおけるサーバサイドのリクエストフォージェリの脆弱性 |
|---|---|
| 概要 | GotenbergはAPIベースのドキュメント変換ツールです。バージョン8.29.1において、ネットワークアクセス権を持つ認証されていない攻撃者が、Gotenberg-Webhook-Urlリクエストヘッダーに細工されたURLを指定することで、任意の内部または外部の宛先に対してサーバーにHTTP POSTリクエストを送信させることが可能でした。filter.goのFilterDeadline関数は送信先URLを制御する目的で用いられていますが、許可リストと拒否リストの両方が空の場合(デフォルト設定)、無条件にnilを返し、すべてのURLを許可してしまいます。この問題はブラインドSSRFの脆弱性であり、Gotenbergは変換したドキュメントをWebhook URLにPOSTし、レスポンスのステータスコードがエラーかどうかだけを確認していますが、ターゲットのレスポンスボディは攻撃者に返しません。攻撃者はこれを利用して、エラーハンドラが呼ばれるかどうかを観察することで内部ネットワークインフラを調査し、副作用を持つ内部サービスに対してPOSTリクエストを強制し、クラウドのメタデータエンドポイントへの到達性を確認できます。リトライ可能なHTTPクライアントは1リクエストあたり最大4回の自動リトライを実行するため、調査を増幅します。この問題はバージョン8.31.0で修正されました。回避策として、GOTENBERG_API_WEBHOOK_ALLOW_LIST環境変数を設定してWebhook URLを既知の受信先に制限するか、GOTENBERG_API_WEBHOOK_DENY_LISTを設定してRFC-1918およびリンクローカルアドレス範囲をブロックしてください。 |
| 想定される影響 | 当該ソフトウェアが扱う情報の一部が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う情報の一部が書き換えられる可能性があります。 さらに、当該ソフトウェアは停止しません。 そして、この脆弱性を悪用した攻撃により、他のソフトウェアにも影響が及ぶ可能性があります。 |
| 対策 | 正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年5月5日0:00 |
| 登録日 | 2026年5月11日11:10 |
| 最終更新日 | 2026年5月11日11:10 |
| CVSS3.0 : 重要 | |
| スコア | 7.2 |
|---|---|
| ベクター | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N |
| TheCodingMachine |
| Gotenberg 8.29.1 以上 8.31.0 未満 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年05月11日] 掲載 |
2026年5月11日11:10 |
| 概要 | Gotenberg is an API-based document conversion tool. In version 8.29.1, an unauthenticated attacker with network access can force the server to make outbound HTTP POST requests to arbitrary internal or external destinations by supplying a crafted URL in the Gotenberg-Webhook-Url request header. The FilterDeadline function in filter.go is intended to gate outbound URLs, but when both the allow-list and deny-list are empty (the default configuration), it returns nil unconditionally and permits any URL. This is a blind SSRF: Gotenberg POSTs the converted document to the webhook URL and only checks whether the response status code is an error, but never returns the target's response body to the attacker. An attacker can use this to probe internal network infrastructure by observing whether the error callback is invoked, force POST requests against internal services that perform side effects, and confirm reachability of cloud metadata endpoints. The retryable HTTP client issues up to 4 automatic retries per request, amplifying each probe. This issue has been fixed in version 8.31.0. As a workaround, configure the GOTENBERG_API_WEBHOOK_ALLOW_LIST environment variable to restrict webhook URLs to known receivers, or set GOTENBERG_API_WEBHOOK_DENY_LIST to block RFC-1918 and link-local address ranges. |
|---|---|
| 公表日 | 2026年5月6日6:16 |
| 登録日 | 2026年5月7日4:07 |
| 最終更新日 | 2026年5月9日4:02 |
| 構成1 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:thecodingmachine:gotenberg:*:*:*:*:*:*:*:* | 8.29.1 | 8.31.0 | |||