<?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/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Echo (V4 &lt; 4.16.1) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/echo-v4--4.16.1/</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>Fri, 23 Oct 2026 21:44:59 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/echo-v4--4.16.1/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Labstack Echo: Proxy middleware WebSocket upgrade bypass</title><link>https://feed.craftedsignal.io/briefs/2026-10-echo-websocket-bypass/</link><pubDate>Fri, 23 Oct 2026 21:44:59 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-10-echo-websocket-bypass/</guid><description>The Labstack Echo web framework Proxy middleware incorrectly establishes a raw tunnel for WebSocket upgrades before validating upstream responses, allowing subsequent HTTP requests to bypass route-level authentication and authorization.</description><content:encoded><![CDATA[<p>The Proxy middleware in Labstack Echo (v4 and v5) fails to validate if an upstream server successfully upgrades to a WebSocket connection. When an upstream server rejects a WebSocket upgrade request but keeps the underlying TCP connection open, Echo incorrectly maintains a raw tunnel. This state causes subsequent HTTP requests on that same connection to be forwarded directly to the upstream service, bypassing any Echo-level router logic or middleware (e.g., authentication, authorization).</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies a proxy route in an Echo-based application.</li>
<li>Attacker sends a WebSocket upgrade request (HTTP GET with Connection: Upgrade, Upgrade: websocket) to the proxy route.</li>
<li>The target upstream service receives the request, determines it cannot upgrade, and returns a standard HTTP response (e.g., 400 or 403) while keeping the connection alive.</li>
<li>Echo's Proxy middleware erroneously promotes the connection to a raw tunnel upon receiving the upgrade initiation, failing to confirm the upstream's non-101 response status.</li>
<li>Attacker sends subsequent unauthorized HTTP requests over the existing, now-tunneling connection.</li>
<li>The proxy forwards these requests directly to the upstream, bypassing route-level controls implemented in the Echo layer.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Unauthorized access to upstream resources that rely on Echo-level authentication or authorization. The bypass does not provide arbitrary-host proxying and relies on existing upstream reachability.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Echo to v4.16.1 or v5.4.1 immediately to implement upstream response validation.</li>
<li>If immediate patching is not possible, enforce independent authentication and authorization checks at the upstream resource level.</li>
<li>Implement request filtering at the perimeter or load balancer to block WebSocket upgrade requests if they are not explicitly required for specific routes.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category></item></channel></rss>