<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rajappa-httpbis-connection-contamination-03" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="HTTP3 Connection Contamination Mitigation">Mitigating HTTP/3 Connection Contamination in Multi-Tenant and CDN-Fronted Deployments</title>
    <seriesInfo name="Internet-Draft" value="draft-rajappa-httpbis-connection-contamination-03"/>
    <author initials="M." surname="Rajappa" fullname="Madhusudhan Rajappa">
      <organization>IBM</organization>
      <address>
        <email>madhu.sudhan@in.ibm.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="18"/>
    <area>Applications and Real-Time</area>
    <workgroup>httpbis</workgroup>
    <keyword>HTTP/3</keyword>
    <keyword>QUIC</keyword>
    <keyword>connection coalescing</keyword>
    <keyword>connection contamination</keyword>
    <keyword>TLS certificate scope</keyword>
    <keyword>421 Misdirected Request</keyword>
    <abstract>
      <?line 93?>

<t>HTTP/3 <xref target="RFC9114"/> clients commonly reuse ("coalesce") an existing QUIC <xref target="RFC9000"/>
connection for requests to a second origin when the TLS certificate presented on
that connection is also valid for the second origin, even though the two origins
may route to entirely different backends. This document describes
"connection contamination," a class of security exposure that arises when a
routing layer -- reverse proxy, load balancer, or CDN edge -- determines backend
routing using a signal established at connection setup rather than re-validated
per request. Under that condition, a coalesced connection can be used to reach
an unintended backend origin, potentially enabling cross-tenant data leakage,
authentication bypass, and response-queue interference analogous to HTTP request
smuggling.</t>
      <t>This document defines the underlying mechanism, characterizes the attacker model,
distinguishes connection contamination from related QUIC exposures, and provides
normative operational guidance for implementers and operators of HTTP/3-terminating
infrastructure.</t>
    </abstract>
  </front>
  <middle>
    <?line 112?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>HTTP/3 <xref target="RFC9114"/> and its QUIC <xref target="RFC9000"/> transport depart from a long-standing
assumption in HTTP/1.1- and HTTP/2-era infrastructure: that a network connection
is uniquely and durably associated with a single origin for the lifetime of that
connection, and that routing decisions made when the connection is established
remain valid for every request subsequently carried on it.</t>
      <t>To reduce handshake overhead, HTTP/3 clients are permitted to reuse an
already-open connection for a request to a second origin when the TLS
<xref target="RFC8446"/> certificate negotiated on that connection is also valid for the
second origin -- for example via a Subject Alternative Name (SAN) or wildcard
entry -- and the client considers the second origin's resolved address
equivalent to the address already in use (see <xref target="RFC9114"/> Section 3.3).
This behavior, known as connection coalescing, is a performance optimization
with no inherent security implication at the protocol level.</t>
      <t>Notably, <xref target="RFC9114"/> Section 3.3 already anticipates a server's need to
reject connection reuse for a given origin, noting that a server "that
does not wish clients to reuse HTTP/3 connections for a particular origin
can indicate that it is not authoritative for a request by sending a 421
(Misdirected Request) status code" (<xref target="RFC9110"/> Section 7.4). This
document's normative contribution is not a new protocol mechanism, but a
recommendation that this existing, currently optional behavior become
mandatory for the specific deployment pattern described in Section 4 --
where the operational cost of an occasional false rejection is
substantially lower than the cost of silent cross-tenant data exposure.</t>
      <t>A security-relevant side effect arises only when infrastructure in front of
the origin -- a reverse proxy, load balancer, or CDN edge -- makes or caches a
routing decision at connection establishment (or on the connection's first
request) rather than re-evaluating the effective request host on every request
the connection subsequently carries. Under that condition, a client holding a
coalescing-eligible connection to one origin can direct a subsequent request on
that same connection to a different origin sharing the same certificate, and
have that request delivered to the second origin's backend even though the
underlying transport and TLS session were established against the first. This
document refers to that condition as "connection contamination," following the
terminology introduced in <xref target="KETTLE2022"/>.</t>
      <t>Connection contamination is architecturally distinct from, though sharing a
common root cause with, QUIC connection-migration abuse against stateful
middleboxes as described in <xref target="COMSNETS2024"/>. The former is a
request-routing and data-isolation exposure; the latter is a resource-exhaustion
and availability exposure. This document addresses connection contamination only.</t>
      <t>This document applies to multi-tenant SaaS deployments and CDN-fronted
architectures in which two or more distinct origins are served behind a shared
TLS certificate and a shared HTTP/3 listener. Single-origin deployments are
outside its scope.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
      <t>The following terms are used throughout this document:</t>
      <dl>
        <dt><strong>Origin:</strong></dt>
        <dd>
          <t>As defined in <xref target="RFC6454"/>, the tuple of (scheme, host, port) that
identifies a distinct web origin. Two origins are considered isolated
when no intentional cross-origin resource sharing or routing is permitted
between them.</t>
        </dd>
        <dt><strong>Connection Coalescing:</strong></dt>
        <dd>
          <t>The HTTP/3 client behavior, specified in <xref target="RFC9114"/> Section 3.3, by which
an existing QUIC connection may be reused for requests to a second origin
when the certificate already negotiated on that connection is also valid for
the second origin and the resolved addresses are considered equivalent.</t>
        </dd>
        <dt><strong>Connection Contamination:</strong></dt>
        <dd>
          <t>The condition, introduced in <xref target="KETTLE2022"/> and defined precisely in
Section 4 of this document, in which a coalesced request is delivered to
an unintended backend origin due to stale or connection-scoped routing at
a routing layer.</t>
        </dd>
        <dt><strong>Routing Layer:</strong></dt>
        <dd>
          <t>A reverse proxy, load balancer, or CDN edge component that receives HTTP/3
connections from clients and forwards requests to one or more upstream
backend origins based on request metadata.</t>
        </dd>
        <dt><strong>Effective Request Host:</strong></dt>
        <dd>
          <t>The value of the <tt>:authority</tt> pseudo-header field as defined in
<xref target="RFC9114"/> Section 4.3.1 (see also <xref target="RFC9110"/> Section 7.2 for the
Host/<tt>:authority</tt> relationship) carried on an individual HTTP/3 request,
which identifies the target origin for that request independently of any
connection-level signal.</t>
        </dd>
      </dl>
    </section>
    <section anchor="applicability">
      <name>Applicability</name>
      <t>This document applies to deployments meeting all of the following conditions:</t>
      <ol spacing="normal" type="1"><li>
          <t>One or more HTTP/3 listeners terminate connections on behalf of two or
more distinct origins (as defined in <xref target="RFC6454"/>).</t>
        </li>
        <li>
          <t>Those origins share a TLS certificate whose Subject Alternative Name (SAN)
set or wildcard pattern covers more than one origin hostname.</t>
        </li>
        <li>
          <t>A routing layer forwards requests from the shared listener to per-origin
backends.</t>
        </li>
      </ol>
      <t>Deployments in which all origins sharing a certificate are intentionally
permitted to share backend state (i.e., no isolation boundary exists) are
outside the primary scope of Section 6, though the detection guidance in
Section 6.5 may still be useful for confirming intentional behavior.</t>
      <t>Single-origin deployments, deployments using per-origin certificates, and
deployments where the HTTP/3 listener itself is the only backend (no
upstream routing) are out of scope.</t>
    </section>
    <section anchor="background-connection-coalescing">
      <name>Background: Connection Coalescing</name>
      <section anchor="protocol-rules">
        <name>Protocol Rules</name>
        <t>HTTP/3 clients determine coalescing eligibility per <xref target="RFC9114"/> Section 3.3
using two criteria applied at the transport/TLS layer:</t>
        <ol spacing="normal" type="1"><li>
            <t>The TLS certificate already negotiated on an open connection is valid for
the second origin's hostname (via SAN or wildcard match).</t>
          </li>
          <li>
            <t>DNS resolution for the second origin's hostname yields an IP address that
the client's stack considers equivalent to the address already in use for
the existing connection.</t>
          </li>
        </ol>
        <t>The standard does not mandate strict IP-address equality as the sole
definition of "equivalent address"; implementations MAY apply their own
equivalence criteria. Infrastructure MUST NOT assume that a given HTTP/3
connection will carry requests for only the origin used to establish it.</t>
      </section>
      <section anchor="relationship-to-http2-coalescing">
        <name>Relationship to HTTP/2 Coalescing</name>
        <t>HTTP/2 <xref target="RFC9113"/> Section 9.1.1 defines a structurally identical coalescing
mechanism: a client MAY reuse an existing connection for a second origin when
the server's TLS certificate is valid for that origin and the same IP address
is in use. The same stale-routing exposure described in this document therefore
applies to HTTP/2 deployments sharing certificates across isolation boundaries.
The present document is scoped to HTTP/3 for two reasons:</t>
        <ol spacing="normal" type="1"><li>
            <t>QUIC's UDP-based transport and built-in connection migration
(<xref target="RFC9000"/> Section 9) make it significantly harder for intermediaries to
correlate a given packet flow with the origin that established the
original connection, increasing the opacity of coalescing to infrastructure.</t>
          </li>
          <li>
            <t>HTTP/3 deployments are more likely to aggregate multiple tenants behind a
single QUIC listener at a CDN or cloud edge, amplifying the blast radius
when a routing layer misconfiguration is present.</t>
          </li>
        </ol>
        <t>Operators of HTTP/2 infrastructure sharing certificates across isolation
boundaries SHOULD apply the per-request host revalidation guidance in
Section 6.1 equally to HTTP/2 connections. A parallel BCP addressing the
HTTP/2 case may be warranted; that work is outside the scope of this document.</t>
      </section>
      <section anchor="client-behavior-variance">
        <name>Client Behavior Variance</name>
        <t>Client behavior with respect to coalescing-eligibility strictness is
implementation-defined. Different browser and library implementations may
apply different levels of address-equivalence checking, and this behavior
may change across software versions. Server-side mitigations defined in
Section 6 MUST NOT depend on any particular client-side coalescing behavior
remaining constant (see also Section 7).</t>
      </section>
    </section>
    <section anchor="connection-contamination-threat-description">
      <name>Connection Contamination: Threat Description</name>
      <section anchor="attacker-model">
        <name>Attacker Model</name>
        <t>The attacker is assumed to be a party able to open an HTTP/3 connection to
at least one origin in a shared-certificate set, but without authorization to
access one or more other origins covered by the same certificate. This
encompasses:</t>
        <ul spacing="normal">
          <li>
            <t>A co-tenant in a multi-tenant SaaS deployment who holds legitimate credentials
for their own tenant origin but not for other tenants.</t>
          </li>
          <li>
            <t>An external client who can resolve and reach a lower-trust origin (e.g., a
marketing or staging hostname) that shares a wildcard certificate with a
higher-trust origin (e.g., an authentication or payment endpoint).</t>
          </li>
          <li>
            <t>An attacker performing targeted cross-origin exfiltration by constructing
coalescing-eligible connections before issuing a forged-authority request.</t>
          </li>
        </ul>
        <t>The attacker does not need to compromise TLS, QUIC, or any cryptographic
primitive. The attack is entirely at the HTTP routing layer and requires only
a valid HTTP/3 client.</t>
      </section>
      <section anchor="threat-conditions">
        <name>Threat Conditions</name>
        <t>Connection contamination requires all three of the following conditions to
hold simultaneously:</t>
        <ol spacing="normal" type="1"><li>
            <t>A TLS certificate whose scope, via wildcard or multi-SAN issuance,
covers two or more origins that are intended to be logically or
organizationally isolated from one another.</t>
          </li>
          <li>
            <t>A client willing to coalesce an existing HTTP/3 connection onto a second
origin covered by that certificate, per Section 4.</t>
          </li>
          <li>
            <t>A routing layer that determines backend routing using a signal other than
the effective request host (<tt>:authority</tt>) re-evaluated on every individual
request -- for example, a cached association formed from the connection's
first request, or a routing key read once from the TLS SNI or QUIC
connection metadata rather than per request.</t>
          </li>
        </ol>
      </section>
      <section anchor="attack-path">
        <name>Attack Path</name>
        <t>The following illustrates a typical contamination scenario in a multi-tenant
CDN-fronted deployment:</t>
        <artwork><![CDATA[
Step 1 — Legitimate connection establishment:
  Client ──[QUIC handshake, SNI=tenant-a.example.com]──▶ CDN Edge
  CDN Edge: stores routing key "backend-A" keyed on connection ID
  CDN Edge ──▶ backend-A

Step 2 — Coalescing-eligible second request:
  Client (same connection): :authority = tenant-b.example.com
  CDN Edge: looks up routing key by connection ID → "backend-A"
  CDN Edge ──▶ backend-A   ← WRONG: should route to backend-B

Result:
  Tenant B's request is served by backend-A.
  Tenant A's response queue may be interleaved with Tenant B's traffic.
]]></artwork>
      </section>
      <section anchor="potential-consequences">
        <name>Potential Consequences</name>
        <t>Where the three conditions in Section 5.2 hold, the following effects are
possible:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Cross-tenant data leakage</strong>: Responses intended for one backend may be
returned to a client of a different backend if response queues are shared
or not strictly isolated per request.</t>
          </li>
          <li>
            <t><strong>Authentication bypass</strong>: If the contaminated backend performs
authorization checks relative to the connection's original SNI rather than
the request's <tt>:authority</tt>, a lower-privileged client may access
higher-privileged resources.</t>
          </li>
          <li>
            <t><strong>Cache contamination</strong>: A CDN or shared cache layer may store a response
under a cache key derived from the victim origin, poisoning subsequent
legitimate requests to that origin. Mitigations for this impact are
addressed in Section 6.5.</t>
          </li>
          <li>
            <t><strong>Response queue interference</strong>: Analogous to HTTP request smuggling
<xref target="REQUESTSMUGGLING"/>, interleaved responses on a shared backend connection
can cause response desynchronization.</t>
          </li>
        </ul>
        <t>The underlying mechanism here is QUIC-specific connection reuse and stale
routing, distinct from the ambiguous header parsing that enables classical
HTTP request smuggling <xref target="REQUESTSMUGGLING"/>.</t>
      </section>
    </section>
    <section anchor="recommendations">
      <name>Recommendations</name>
      <t>The following recommendations apply to operators and implementers of
HTTP/3-terminating infrastructure -- reverse proxies, load balancers, and
CDN edges -- that front more than one origin behind a shared TLS certificate.</t>
      <section anchor="per-request-host-revalidation">
        <name>Per-Request Host Revalidation</name>
        <t>A routing layer terminating HTTP/3 connections MUST re-evaluate the
effective request host -- the value of the <tt>:authority</tt> pseudo-header field
(<xref target="RFC9110"/> Section 7.2) -- on every individual request received on a
connection, and MUST NOT rely solely on a routing decision cached from
connection establishment, from the TLS SNI negotiated at handshake, or from
an earlier request on the same connection.</t>
        <t>Where a routing layer determines that a request's <tt>:authority</tt> value does not
correspond to an origin it can properly serve on the connection on which the
request arrived, it MUST respond with <tt>421 (Misdirected Request)</tt>
(<xref target="RFC9110"/> Sections 7.4 and 15.5.20) rather than forwarding the request to
an incorrect backend.</t>
        <t>These requirements reflect current practice among major HTTP/3 reverse proxy
implementations (e.g., Nginx, Envoy, and Caddy each perform per-request
<tt>:authority</tt> evaluation by default when virtual-host routing is configured)
and are consistent with the server behavior already anticipated by
<xref target="RFC9114"/> Section 3.3. The MUST level is warranted because silent
incorrect routing -- the failure mode in the absence of this requirement --
constitutes a data-isolation breach with no observable signal to the affected
tenant.</t>
      </section>
      <section anchor="certificate-scope-minimization">
        <name>Certificate Scope Minimization</name>
        <t>Operators SHOULD NOT deploy a TLS certificate whose SAN or wildcard scope
spans origins with differing trust levels or isolation requirements. Where
broad-scope certificates are operationally necessary (for example, in
multi-tenant SaaS hosting or large-scale CDN deployments), the routing layer
behind that certificate MUST implement per-request host revalidation as
described in Section 6.1 without exception.</t>
      </section>
      <section anchor="sni-and-authority-consistency-enforcement">
        <name>SNI and :authority Consistency Enforcement</name>
        <t>A routing layer SHOULD compare the TLS SNI value presented at handshake with
the <tt>:authority</tt> pseudo-header of each subsequent request on the same
connection. A mismatch between SNI and <tt>:authority</tt> is a reliable indicator
of a coalesced request and SHOULD trigger revalidation logic. Where the
routing layer cannot serve the <tt>:authority</tt> value on the current connection,
it MUST respond with <tt>421 (Misdirected Request)</tt> per <xref target="RFC9110"/> Section
15.5.20, allowing compliant clients to retry on a new connection.</t>
      </section>
      <section anchor="trust-boundary-segmentation">
        <name>Trust-Boundary Segmentation</name>
        <t>Where isolation requirements differ significantly between origins (for
example, an origin handling authentication or payment functions versus a
marketing or staging origin), operators SHOULD segment HTTP/3 listeners such
that high-isolation origins are not reachable via a certificate shared with
lower-trust origins. This segmentation SHOULD be implemented as defense in
depth, independent of whether Section 6.1 is correctly implemented.</t>
      </section>
      <section anchor="cache-contamination-mitigation">
        <name>Cache Contamination Mitigation</name>
        <t>When a routing layer is co-located with or upstream of a shared cache, the
following additional controls MUST or SHOULD be applied to prevent cache
contamination (one of the consequences identified in Section 5.4):</t>
        <ol spacing="normal" type="1"><li>
            <t>Cache keys MUST include the effective request host (<tt>:authority</tt> value)
and MUST NOT be derived solely from connection-level metadata such as the
TLS SNI or QUIC connection ID.</t>
          </li>
          <li>
            <t>Routing layers SHOULD propagate a verified, normalized host value to
upstream caches as part of the forwarded request rather than relying on
the cache to re-derive it independently.</t>
          </li>
          <li>
            <t>Cache entries associated with a given origin MUST NOT be served in
response to a request whose <tt>:authority</tt> names a different origin, even
when both origins are covered by the same TLS certificate.</t>
          </li>
        </ol>
        <t>Operators SHOULD audit cache-key configuration on shared caches whenever
per-request host revalidation (Section 6.1) is first deployed, as correcting
routing behavior without correcting cache-key derivation leaves the cache
contamination consequence unmitigated.</t>
      </section>
      <section anchor="detection-guidance">
        <name>Detection Guidance</name>
        <t>Operators assessing existing infrastructure for this exposure SHOULD:</t>
        <ol spacing="normal" type="1"><li>
            <t>Enumerate the full SAN and wildcard scope of each TLS certificate served
on HTTP/3 listeners in scope.</t>
          </li>
          <li>
            <t>For each pair of hostnames sharing a certificate, determine whether a
client would consider them coalescing-eligible per Section 4 and
<xref target="RFC9114"/> Section 3.3.</t>
          </li>
          <li>
            <t>For each coalescing-eligible pair, verify -- via authorized testing only --
that a request specifying the second hostname's <tt>:authority</tt>, issued on a
connection established against the first hostname, is either:
            </t>
            <ul spacing="normal">
              <li>
                <t>Rejected with <tt>421 (Misdirected Request)</tt> per <xref target="RFC9110"/> Section 15.5.20, or</t>
              </li>
              <li>
                <t>Independently re-routed to the correct backend for the second hostname.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Confirm that no routing state keyed on connection ID, QUIC connection
metadata, or TLS session parameters persists across requests in a way
that could override per-request <tt>:authority</tt> evaluation.</t>
          </li>
          <li>
            <t>Verify that cache keys on any shared cache layer include the effective
request host and cannot be collided across tenant origins.</t>
          </li>
        </ol>
        <t>Operators performing this verification SHOULD use non-destructive, read-only
requests and MUST NOT perform this testing against infrastructure without
explicit authorization from the system owner.</t>
      </section>
      <section anchor="implementation-guidance-for-per-request-validation">
        <name>Implementation Guidance for Per-Request Validation</name>
        <t>The per-request validation required by Section 6.1 is a routing-table
lookup keyed on the effective request host -- the same operation
virtual-hosting HTTP servers have performed on every request since the
introduction of the Host header, independent of HTTP version. Performed
against an in-memory routing table, this check does not impose
significant per-request latency or capacity cost, and implementations
SHOULD treat it as a fast-path lookup rather than an expensive operation
to be minimized or made conditional.</t>
        <t>The performance cost meaningfully associated with this document's
recommendations arises not from the validation check itself, but from
the connection-level disruption when a request is correctly rejected
with 421: the client must establish a new connection to reach the
intended origin, incurring full handshake cost. Operators SHOULD
minimize the frequency of this cost through correct upstream DNS and
certificate scoping (Section 6.2) rather than by relaxing or omitting
the per-request validation itself: the validation is what prevents the
security exposure this document describes, while 421 frequency is a
separate operational-efficiency concern with independent remedies that
do not compromise Section 6.1.</t>
        <t>Where 421 responses could themselves be used as a probing or
amplification vector -- for example, at very high request rates from a
single client attempting to enumerate coalescing-eligible pairs --
operators SHOULD apply standard rate-limiting to 421 generation
consistent with existing abuse-mitigation practice, without weakening
the underlying per-request revalidation requirement in Section 6.1.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This entire document concerns a security exposure and its mitigation;
Section 6 constitutes its primary normative guidance.</t>
      <section anchor="client-behavior-must-not-be-assumed-stable">
        <name>Client Behavior Must Not Be Assumed Stable</name>
        <t>Browser and library client behavior with respect to the strictness of
coalescing-eligibility evaluation (Section 4.1) is an implementation choice
that is not guaranteed by <xref target="RFC9114"/> or <xref target="RFC9000"/> and may vary across
client versions. Server-side mitigations per Section 6 MUST NOT depend on
any particular client-side coalescing behavior remaining constant. A more
permissive future client implementation would silently expand the exposure
window for infrastructure that relied on current client behavior as a
mitigating control.</t>
      </section>
      <section anchor="connection-migration-interaction">
        <name>Connection Migration Interaction</name>
        <t>QUIC connection migration (<xref target="RFC9000"/> Section 9) allows a QUIC connection
to survive changes in the client's network path (e.g., switching from Wi-Fi
to cellular). Migration does not materially change the threat surface
described in this document: the connection and its associated TLS session
remain the same object, coalescing eligibility criteria are unaffected, and
routing-layer state keyed on connection ID survives the migration. Operators
SHOULD NOT treat connection migration as a mitigating factor for connection
contamination.</t>
      </section>
      <section anchor="interaction-with-connection-id-based-load-balancing">
        <name>Interaction with Connection-ID-Based Load Balancing</name>
        <t>Some large-scale deployments use connection-ID-based load balancing (see
<xref target="QUICLB"/>) so that packets belonging to an established QUIC connection
consistently reach the same backend server instance, including after a
client address change. This mechanism operates at the packet-delivery
layer and addresses a distinct concern from the one this document
describes: it ensures delivery continuity to a consistent server instance
and does not itself determine which HTTP origin(s) that instance is
authorized to serve.</t>
        <t>The requirement in Section 6.1 applies to the HTTP-serving logical entity
that ultimately processes a request -- that is, whichever server instance
a connection-ID-based load balancer has delivered the packet to -- and is
fully compatible with connection-ID-based load balancing: the receiving
instance MUST still evaluate the effective request host on every request
and respond with 421 where it cannot serve the indicated origin,
regardless of how the underlying packet was delivered to it. Deployments
MUST NOT conflate connection-ID-based backend-instance affinity, which is
a transport-layer delivery mechanism, with origin-level authorization,
which remains an independent HTTP-layer decision made on every request
per Section 6.1.</t>
      </section>
      <section anchor="misdirected-request-as-a-defense-mechanism">
        <name>421 Misdirected Request as a Defense Mechanism</name>
        <t>The <tt>421 (Misdirected Request)</tt> status code defined in <xref target="RFC9110"/>
Section 15.5.20 was introduced specifically to handle the case in which a
server receives a request on a connection it cannot properly serve for
that target origin. <xref target="RFC9114"/> Section 3.3 already identifies this status
code as the mechanism by which a server opts out of connection reuse for
a given origin -- this document does not introduce new protocol behavior,
but elevates an existing, currently discretionary ("can indicate")
mechanism to a normative requirement (Section 6.1) for the specific
class of deployment described in Section 4, where the isolation stakes
of an incorrect reuse decision are high. Correct implementation of 421
responses at routing layers is therefore not merely a best practice but
the base specification's own designated defense, and is the primary
normative defense against connection contamination described in this
document. Implementations that suppress or translate 421 responses
negate this defense.</t>
      </section>
      <section anchor="scope-of-normative-requirements">
        <name>Scope of Normative Requirements</name>
        <t>The normative requirements in Section 6 are addressed to routing-layer
implementers and operators. They do not impose requirements on HTTP/3 client
implementations, which are governed by <xref target="RFC9114"/> and <xref target="RFC9000"/>.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9114">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC6454">
          <front>
            <title>The Web Origin Concept</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents. Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites. In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string. It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6454"/>
          <seriesInfo name="DOI" value="10.17487/RFC6454"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9113">
          <front>
            <title>HTTP/2</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
              <t>This document obsoletes RFCs 7540 and 8740.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9113"/>
          <seriesInfo name="DOI" value="10.17487/RFC9113"/>
        </reference>
        <reference anchor="QUICLB" target="https://datatracker.ietf.org/doc/draft-ietf-quic-load-balancers/">
          <front>
            <title>QUIC-LB: Generating Routable QUIC Connection IDs</title>
            <author initials="M." surname="Duke">
              <organization/>
            </author>
            <author initials="N." surname="Banks">
              <organization/>
            </author>
            <author initials="C." surname="Huitema">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Work in Progress" value="draft-ietf-quic-load-balancers"/>
        </reference>
        <reference anchor="KETTLE2022" target="https://portswigger.net/research/http-3-connection-contamination">
          <front>
            <title>HTTP/3 connection contamination: an upcoming threat?</title>
            <author initials="J." surname="Kettle" fullname="James Kettle">
              <organization>PortSwigger Research</organization>
            </author>
            <date year="2022"/>
          </front>
          <annotation>Original public research introducing the HTTP/3 connection contamination vulnerability class discussed throughout this document.</annotation>
        </reference>
        <reference anchor="REQUESTSMUGGLING" target="https://www.defcon.org/html/defcon-27/dc-27-speakers.html#Kettle">
          <front>
            <title>HTTP Request Smuggling</title>
            <author initials="J." surname="Kettle" fullname="James Kettle">
              <organization>PortSwigger Research</organization>
            </author>
            <date year="2019"/>
          </front>
          <seriesInfo name="DEF CON 27 AppSec Village" value="Las Vegas, NV, USA"/>
          <annotation>Original public presentation of HTTP request-smuggling techniques; referenced here to establish analogy with response-queue interference described in Section 5.4.</annotation>
        </reference>
        <reference anchor="COMSNETS2024" target="https://ieeexplore.ieee.org/document/10427406">
          <front>
            <title>Security and Service Vulnerabilities with HTTP/3</title>
            <author initials="H.H." surname="Sudhan" fullname="Hari Hara Sudhan">
              <organization/>
            </author>
            <author initials="S. G." surname="Kulkarni" fullname="Sameer G. Kulkarni">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
          <seriesInfo name="2024 16th International Conference on COMmunication Systems &amp; NETworkS (COMSNETS), Bengaluru, India" value="pp. 55-60, doi: 10.1109/COMSNETS59351.2024.10427406"/>
        </reference>
      </references>
    </references>
    <?line 569?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author acknowledges the original public research on this exposure class by
James Kettle of PortSwigger Research <xref target="KETTLE2022"/>, on which the threat
description in Section 5 draws directly. The author also acknowledges
<xref target="COMSNETS2024"/> for characterizing related QUIC transport-layer security
vulnerabilities in multi-tenant contexts.</t>
    </section>
    <section numbered="false" anchor="changes-from-00">
      <name>Changes from -00</name>
      <t>-01 added the Applicability section (Section 3), the Attacker Model
(Section 5.1) with concrete actor scenarios, an illustrated Attack Path
walkthrough (Section 5.3), the SNI and :authority Consistency Enforcement
recommendation (Section 6.3), the Cache Contamination Mitigation
recommendation (Section 6.5), the Connection Migration Interaction
discussion (Section 7.2), and explicit grounding of the Section 6.1 MUST
requirement in the pre-existing, currently discretionary mechanism already
described in <xref target="RFC9114"/> Section 3.3 (Section 7.3). Reference-section
citations for <xref target="RFC9114"/>, <xref target="RFC9110"/>, and <xref target="RFC9113"/> were corrected to
their proper section numbers throughout.</t>
      <t>-02 corrected two reference errors: the <xref target="KETTLE2022"/> entry was updated
to cite the original PortSwigger research post that introduced the
connection contamination terminology used throughout this document,
replacing an incorrectly titled prior entry; the <xref target="COMSNETS2024"/> author
list was corrected to list only the paper's actual two authors.</t>
      <t>-03 added Interaction with Connection-ID-Based Load Balancing (Section
7.3) clarifying that the Section 6.1 requirement operates at the
HTTP-serving logical layer and is fully compatible with connection-ID-based
load balancing per <xref target="QUICLB"/>; added Implementation Guidance for
Per-Request Validation (Section 6.7) addressing the performance
characteristics of per-request host validation versus 421-triggered
reconnection, and recommending rate-limiting of 421 generation as an
abuse-mitigation measure, without introducing any exception to the
Section 6.1 MUST requirement.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V93XLcSHbmfT5FLidih+wolEjqp7fZa89SlLpbtkTJoron
NhyOHRSQVcQIBZSRAKmaDk34yteODcde71PsA+yj9JPs+c7JTGSiqqhu36zD
0VOqAhLIk+fnO985mcyyTPVVX5sL/abqq1XeV81K//Dhw7tHj/VV2zSm6Ku2
wcc+X1dNzv+qGv1mqPsq+2CavOl13pT66sV19l1Hl5lSvzCbut2uTdNblS8W
nbm74DEfGNI/vW1U2RZNvqY3Krt82Wdd/ud8s8mz277fLCqbFWEIfByHyE4f
qyLvzartthd6UWyUHRbrylr6rd9uaLxXLz98p/LO5Bf6crOpq4Lvs/z6701e
Zx+qtVH3bfdx1bXD5kK7R6qPZkvflhdKZ042+PQPP766wv+OL0Qf89rYgmS4
80P0pvjtw+sbXZiur5Z4DaNt0W4MfnhyfkbCsGXV0a0GL/bPg7G9UtWmu9B9
N9j+/PT0m9NzZXt68f+R121Dc9saqzbVhf7Hvi1m2rZd35mlpU/bNT78k1L5
0N+2HeagNP1f1Vha87l+L+Ll70Tsb/LydrBDeZs3ya9tt8qb6i88BRLm8zf8
rVnnVX2h17hpLnf9t6qZV4v1vGjXSjVtt6Zb7gw9Wb//7ur87Owb9/G/nH39
xH385uwsfDw9PfUXPHnybLzAf/vsyVO6VlXNcjI0XfMYH7Ewr59f8Os55T7C
dxl9qb83jelEzd+3Q58vasM3xKr56oU94ruDzPj/Mve/o/BeDB/N/h+v5/p5
3ny0+3+9musfhqon2fH31nSVsZiQf9TRH0kLYWfvunbVGWuPaA5iD5Xpl9k/
D1WR1W1eZou8zhvSJPfGfd6tTE8XQ3ftxaNHZd7nfZcXH003x61zWsZHZGKP
Hh7tEYb7+5cfPrx+eX56fp4K0/mHQ/p9QRalhw0tP6Tc35LF9X/4FQL9u7n+
e9PTI8LXopB/R/+1059oGhf6Hen5zX21WpmODMWavCtu+QqaNd2IN98vlQ3d
aOXGeWP6R527+REuyB4fdDJuFk3T9m6qf+ve6G1XreiiWm+GBbkW7UekqfVd
Ww6FyMLoHeG5AZLn6Luhhp4uqrrqt7qoc2t1WdlisJacAsm0HVa3pL/0saJf
2mKAu53DEF7+w48vbz7cvPnx++9fv7r+fnfpvE/RN+thtarpxf7/LM7ZN4e0
/8XL7/TV22t9/jU89Y0p9E9VXecrAzN4nVv9k1nl5N2uf5rpH28uD6j+/f39
vDRLEiwr/W2/rh/Jv7Pzrx+VBf03sxuTk2nYOX79nUzj1y/yBqvcyFW6XfLa
0sqzdDPrpat7U9w2Fb791g1EPtl0hiyt1Lf0QfetplvIGVX2lp5MTn211fdV
fws92lCQMmSkZjDQJtO5e91YJUWcrlrQUOQvbpxBPp0/gTJcvX1zc/3yww1Z
wpNUEejCoYNuIfrdmO6uKoz+KdI6WhN5A1HYL6kI3ZDXpCc/zH+Yh6/t0ImW
HN1wZDgKvyyHunY//ZB3lab/5Dq9aKKAN3P9PengUH/Mu6aaaOEN/ZfUbHpB
cANPDmkaftNnz2iaryBZsT5aYIoGTsoaWOXtm/XQOMCgb7aWXLfV/1mTaAEX
bvSxF/TJTD83zSqvh26Y0ZhllUNnN5u5fvo0e3Y6I1ulMH12OqeA9s0jf9vT
bx4/PZvjZeZnp0/Ov35y+uyAUlfGmE8Erzozx0fvztn8H433qizLdL6wcP0E
HpzT+flnF2s/fyafUgGgkd9Zr9um3pKmDdbo4yMHYszRCfy4+VRZjpYcJGUA
itCfP6vI/VMk9mpvocs5iZp+LskRwGD0/a1p2PlNYY8zINJd8oP9bd7HQYUc
G6lUq+/yuir5GRgiGXmmzR0PDXfIP/f3rfvNqnVOsyInKfbV9ISpaJ5lteSl
7fUCYbEp7Vx/iL1osCirjg7FuNkRTVLcMtm99cZES9OS0tMDMRdSbAsrwuxz
hTeBIOt8S6pKy0O4mDwPhNB+2s40ArD2AXhGkwCm1qZcGVxcGlJPejqN5147
DDhY/JdkXq2gusGRkFRTgVrTDxtN6Id8Dt6woVfIWLq0FqXamLCKc/1jU8pF
PEJZ8aQxZ6cdZRL+aaiFoRdBbGppkJxcPUBAA39FI5X+pcO6bdoeK5LXtCKU
RSzYURZda23WS1YB5KJrcs/k92cMX3GDs8HFdkOyn7H3esBFOl/aDqyWsXtW
wT3PlZou/5LlDHUaIIZ6i5dbkxcnAGzXM00fYFfkTv7irsv7njGWXrelqWeq
FKsZsAz2IFLSy65d0xvVkL9YmNcgNzfSjbuK9HHE0ZoShc67KXpACX1h66jW
m9pgBqRVfLNc2XbWx6ZHjzPRIgbAgNBdTi5iKHp64lycxroqSwrl6nfwiIxc
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
FK/iXP0/0sasKU9wAAA=

-->

</rfc>
