<?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>Amir20 — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/amir20/</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, 11 May 2026 14:08:12 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/amir20/feed.xml" rel="self" type="application/rss+xml"/><item><title>Dozzle Cross-Site WebSocket Hijacking (CSWSH) Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-05-dozzle-cswsh/</link><pubDate>Mon, 11 May 2026 14:08:12 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-dozzle-cswsh/</guid><description>Dozzle is vulnerable to Cross-Site WebSocket Hijacking (CSWSH) due to a permissive CheckOrigin configuration and the use of SameSite=Lax for JWT cookies, allowing attackers on the same site to gain shell access to containers even with authentication enabled, tracked as CVE-2026-44985.</description><content:encoded><![CDATA[<p>Dozzle, a real-time log viewer for Docker containers, is susceptible to a Cross-Site WebSocket Hijacking (CSWSH) vulnerability. The vulnerability exists due to the <code>CheckOrigin</code> function in the WebSocket upgrader being overridden to always return true, effectively disabling cross-origin protection. Combined with the use of <code>SameSite=Lax</code> for the JWT cookie, an attacker hosting a malicious page on the same site (e.g., a sibling subdomain or another service on localhost) can exploit this to gain unauthorized access. This allows the attacker to establish a WebSocket connection to the <code>/exec</code> or <code>/attach</code> endpoints using the victim&rsquo;s valid JWT cookie, granting them interactive shell access to any container the victim is authorized to access. This vulnerability, tracked as CVE-2026-44985, affects Dozzle versions up to and including 10.5.1. Even deployments with authentication properly configured are vulnerable.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker hosts a malicious page on a domain that shares the same site as the vulnerable Dozzle instance (e.g., <code>attacker.example.com</code> if Dozzle is on <code>dozzle.example.com</code>).</li>
<li>A victim who is authenticated to Dozzle visits the attacker&rsquo;s page in their browser.</li>
<li>The attacker&rsquo;s webpage executes JavaScript that initiates a WebSocket connection to the Dozzle server, specifically targeting the <code>/api/hosts/{host}/containers/{id}/exec</code> endpoint.</li>
<li>The victim&rsquo;s browser automatically includes the JWT cookie in the WebSocket request because the attacker&rsquo;s page is on the same site and the cookie&rsquo;s <code>SameSite</code> attribute is set to <code>Lax</code>.</li>
<li>Dozzle&rsquo;s WebSocket upgrader bypasses the origin check because the <code>CheckOrigin</code> function is configured to always return <code>true</code>.</li>
<li>The Dozzle server validates the JWT cookie, authenticating the WebSocket connection as the victim.</li>
<li>The attacker now has an interactive shell session within the victim&rsquo;s authorized containers.</li>
<li>The attacker can then execute arbitrary commands within the container, potentially leading to sensitive information disclosure or further exploitation.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this CSWSH vulnerability allows an attacker to execute arbitrary commands within Docker containers that the victim has access to. This can lead to the compromise of sensitive data, such as secrets, environment variables, and files stored within the containers. Furthermore, an attacker can potentially pivot to other services accessible from the container&rsquo;s network, potentially escalating the attack. If the Docker socket is mounted with write permissions, the attacker might even be able to escape the container and compromise the host system.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Dozzle to a version greater than 10.5.1 to remediate CVE-2026-44985.</li>
<li>Deploy the Sigma rule <code>Detect Dozzle CSWSH Attempt via Origin Header</code> to identify potential exploitation attempts by monitoring WebSocket connections with mismatched Origin headers, and tune it for your environment.</li>
<li>Apply the suggested fix by removing the custom <code>CheckOrigin</code> override in Dozzle&rsquo;s source code, reverting to the default gorilla/websocket behavior, which rejects cross-origin requests.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>cswsh</category><category>websocket</category><category>authentication-bypass</category></item></channel></rss>