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.
Gotenberg 8.29.1 contains an unauthenticated Server-Side Request Forgery (SSRF) vulnerability in the Gotenberg-Webhook-Url header that allows attackers to force arbitrary HTTP POST requests to internal or external destinations. The vulnerability exists because the FilterDeadline function returns nil when both allow-list and deny-list are empty, bypassing URL validation entirely.
ثغرة SSRF عمياء في Gotenberg 8.29.1 تسمح لمهاجم غير مصرح بالوصول إلى الشبكة بفرض طلبات HTTP POST إلى وجهات عشوائية من خلال رأس Gotenberg-Webhook-Url. يمكن للمهاجم استخدام هذه الثغرة لاستكشاف البنية التحتية للشبكة الداخلية أو فرض طلبات ضد الخدمات الداخلية التي تؤدي إلى آثار جانبية.
إصدار Gotenberg 8.29.1 يحتوي على ثغرة SSRF غير مصرح بها في رأس Gotenberg-Webhook-Url تسمح للمهاجمين بفرض طلبات HTTP POST عشوائية إلى وجهات داخلية أو خارجية. تنشأ الثغرة لأن دالة FilterDeadline تعيد nil عندما تكون قائمة السماح وقائمة الحظر فارغتين.
Upgrade Gotenberg to version 8.29.2 or later immediately. Configure explicit allow-list and deny-list rules for webhook URLs in production environments. Implement network segmentation to restrict outbound connections from Gotenberg servers. Monitor and log all webhook requests. Disable webhook functionality if not required.
قم بترقية Gotenberg إلى الإصدار 8.29.2 أو أحدث فوراً. قم بتكوين قوائم سماح وحظر صريحة لعناوين URL الخاصة بـ webhook في بيئات الإنتاج. قم بتنفيذ تقسيم الشبكة لتقييد الاتصالات الصادرة من خوادم Gotenberg. راقب وسجل جميع طلبات webhook. عطّل وظيفة webhook إذا لم تكن مطلوبة.