<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Http/1.1 on Aashutosh Poudel</title><link>https://atosh502.github.io/tags/http/1.1/</link><description>Recent content in Http/1.1 on Aashutosh Poudel</description><generator>Hugo</generator><language>en-US</language><copyright>Copyright © \b20\d{2}\b, Aashutosh Poudel.</copyright><lastBuildDate>Wed, 25 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://atosh502.github.io/tags/http/1.1/index.xml" rel="self" type="application/rss+xml"/><item><title>HTTP/1.1 desync attacks</title><link>https://atosh502.github.io/blog/til/2026/march/http/1.1-desync-attacks/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://atosh502.github.io/blog/til/2026/march/http/1.1-desync-attacks/</guid><description>&lt;ul&gt;
&lt;li&gt;isolation between individual http requests is fundamentally broken in http/1.1
&lt;ul&gt;
&lt;li&gt;no reliable way to say when one request finishes and next request starts&lt;/li&gt;
&lt;li&gt;multiple ways to specify request length + requests are concatenated under single connection without delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.cloudflare.com/resolving-a-request-smuggling-vulnerability-in-pingora/#what-is-request-smuggling"&gt;request smuggling&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;between client and application servers, request passes through multiple components such as load balancers, reverse proxies, etc.&lt;/li&gt;
&lt;li&gt;HTTP request parsers inconsistency: an attacker can craft a request that one component sees as complete, but the other continues to parse into a second, malicious request made on the same connection.&lt;/li&gt;
&lt;li&gt;the malicious request could inject headers and its URL into a subsequent valid request sent on the same connection.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Links&lt;/p&gt;</description></item></channel></rss>