<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Cve-2026-45298 — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/cve-2026-45298/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Mon, 18 May 2026 16:42:39 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/cve-2026-45298/feed.xml" rel="self" type="application/rss+xml"/><item><title>Dozzle Pre-Auth SSRF Vulnerability via /api/notifications/test-webhook (CVE-2026-45298)</title><link>https://feed.craftedsignal.io/briefs/2026-05-dozzle-ssrf/</link><pubDate>Mon, 18 May 2026 16:42:39 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-dozzle-ssrf/</guid><description>Dozzle is vulnerable to a pre-authentication Server-Side Request Forgery (SSRF) vulnerability (CVE-2026-45298) in the default no-auth deployment that can expose internal resources.</description><content:encoded><![CDATA[<p>Dozzle, a real-time log viewer for Docker containers, is vulnerable to a Server-Side Request Forgery (SSRF) attack (CVE-2026-45298) via the <code>/api/notifications/test-webhook</code> endpoint. This endpoint is exposed without authentication in default deployments where the <code>DOZZLE_AUTH_PROVIDER</code> environment variable is not set. An attacker can exploit this vulnerability to send arbitrary HTTP POST requests to internal or external resources accessible from the Dozzle host. The application reflects the response body, up to 1MB, back to the attacker, enabling the retrieval of sensitive information from internal services, cloud metadata endpoints, or other reachable targets. This affects Dozzle version 8.14.12 and earlier.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker identifies a Dozzle instance running with the default no-authentication configuration.</li>
<li>The attacker crafts a malicious HTTP POST request to the <code>/api/notifications/test-webhook</code> endpoint.</li>
<li>The request body includes a JSON payload containing the <code>url</code> parameter, which specifies the target URL for the SSRF attack. The <code>headers</code> parameter can be used to inject arbitrary headers into the outgoing request.</li>
<li>The Dozzle server receives the request and, due to the lack of authentication, processes the request without validation.</li>
<li>The <code>WebhookDispatcher</code> creates an HTTP POST request to the attacker-specified URL, including the attacker-provided headers.</li>
<li>The Dozzle server sends the crafted HTTP request to the target URL.</li>
<li>If the target URL responds with a non-2xx status code, the server reads up to 1MB of the response body.</li>
<li>The server includes the status code and the response body in the JSON response to the attacker, exposing sensitive information.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows an attacker to read data from internal services, potentially exposing sensitive information such as configuration details, API keys, or internal documents. It also allows probing for the existence of internal resources and potentially injecting headers into requests to internal services. This can lead to further compromise of internal systems.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Refuse <code>test-webhook</code> requests when <code>Authorization.Provider</code> is set to <code>NONE</code>.</li>
<li>Implement SSRF hardening for <code>WebhookDispatcher</code> by validating and sanitizing the input URL, resolving the host IP address via <code>net.LookupIP</code>, refusing private, loopback, link-local, and CGNAT addresses, pinning the <code>http.Transport.DialContext</code> to the resolved IP address, and refusing non-HTTP(S) schemes, as suggested in the advisory.</li>
<li>Disable the reflection of the response body in the <code>testWebhook</code> handler. Modify the handler to only return the <code>Success</code> boolean and <code>StatusCode</code> integer values, as suggested in the advisory.</li>
<li>Monitor web server logs for POST requests to the <code>/api/notifications/test-webhook</code> endpoint with suspicious URLs (internal IPs, cloud metadata endpoints) in the request body and deploy the Sigma rule <code>Detect Dozzle SSRF Attempt via test-webhook</code> to identify exploitation attempts.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>ssrf</category><category>dozzle</category><category>cve-2026-45298</category></item></channel></rss>