<?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-05" 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-05"/>
    <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="19"/>
    <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/1.1 and earlier versions of HTTP restrict connection reuse to a
single origin: a client attributes authority to a server only over a
connection established specifically to that origin's host
(<xref target="RFC9110"/> Section 4.3.3). HTTP/2 and HTTP/3 relax this constraint
-- both permit connection reuse across multiple origins when the
server's TLS <xref target="RFC8446"/> certificate is valid for the second origin
and the client considers the resolved addresses equivalent
(<xref target="RFC9110"/> Section 4.3.3; <xref target="RFC9114"/> Section 3.3; <xref target="RFC9113"/>
Section 9.1.1). This cross-origin connection reuse, known as
connection coalescing, is a deliberate performance optimization
present in both HTTP/2 and HTTP/3, with no inherent security
implication at the protocol level.</t>
      <t>The security-relevant difference HTTP/3 introduces relative to HTTP/2
is not cross-origin connection reuse itself, but the opacity
introduced by QUIC's UDP-based transport and connection migration
(<xref target="RFC9000"/> Section 9), which makes it significantly harder for
routing intermediaries to correlate a given packet flow with the
origin that established the original connection. This opacity amplifies
the consequences of routing decisions made at connection establishment
rather than re-evaluated per request -- the condition that enables
connection contamination as defined in this document.</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 client behavior, defined for HTTP/2 in <xref target="RFC9113"/> Section 9.1.1
and for HTTP/3 in <xref target="RFC9114"/> Section 3.3, by which an existing connection
may be reused for requests to a second origin when the server's TLS
certificate is also valid for that second origin and the client considers
the resolved addresses 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 are consistent with the server behavior already anticipated
by <xref target="RFC9114"/> Section 3.3, which explicitly provides 421 as the mechanism
by which a server signals that it cannot serve a given origin on the current
connection. 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.
Operators SHOULD NOT assume that any given HTTP/3 reverse proxy implementation
performs per-request <tt>:authority</tt> evaluation by default; implementations vary,
and the absence of an explicit routing layer check is the root condition this
requirement is designed to close.</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="Hari Hara Sudhan S" fullname="Hari Hara Sudhan S">
              <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 580?>

<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>
      <t>-04 corrected the Introduction to accurately reflect that cross-origin
connection reuse (connection coalescing) is a feature present in both
HTTP/2 (<xref target="RFC9113"/> Section 9.1.1) and HTTP/3 (<xref target="RFC9114"/> Section 3.3),
as defined in <xref target="RFC9110"/> Section 4.3.3, and is not a departure from
HTTP/1.1- and HTTP/2-era practice as incorrectly stated in -03. The
HTTP/3-specific concern is reframed around QUIC's transport-layer opacity
(<xref target="RFC9000"/> Section 9) making routing errors harder to detect and correct
in intermediary infrastructure, rather than cross-origin reuse being a
new behavior introduced by HTTP/3. Thanks to Ben Schwartz for the
correction.</t>
      <t>-05 corrected two issues identified during DE-level review: (1) the
Section 6.1 justification paragraph asserting that named implementations
(Nginx, Envoy, Caddy) perform per-request :authority evaluation by default
was removed, as this claim is partially contradicted by known Nginx HTTP/3
behavior and cannot be made accurately as a blanket statement; the paragraph
was replaced with a technically defensible justification grounded in
<xref target="RFC9114"/> Section 3.3 and the failure-mode rationale for the MUST level;
(2) the Section 2 "Connection Coalescing" definition was corrected to cover
both HTTP/2 (<xref target="RFC9113"/> Section 9.1.1) and HTTP/3 (<xref target="RFC9114"/> Section 3.3),
resolving an inconsistency with the Introduction and Section 4.2 introduced
in -04.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V93XIcx5LefT1FGSfCB1DMDAnwRxbo3WMQpCTukiCXoHTC
sbHh0zNdM2ixp3u2fwCOFDyxV3vtcGz42k/hB/Cj6EmcX2ZWdVXPDCitL7yx
oQMCPdVVWZlffvlTNdPp1HRFV7pz+6boilXWFdXKfv/hw7sHj+xlXVVu0RV1
hR+7bF1UGf+rqOybvuyK6QdXZVVnsyq3ly+upt829JjL7Qu3Kevt2lVda7L5
vHG35zzmPUP6t9eVyetFla1pRnmTLbtpk/2UbTbZ9KbrNvOinS7CEPhxGGL6
8IlZZJ1b1c323M4XG9P283XRtvS3bruh8V69/PCtyRqXnduLzaYsFvy5lqf/
3mXl9EOxduaubj6umrrfnFt9pfnotvTb/NzYqcoGP/3DD68u8b/DhOjHrHTt
gmS484dopvjbh9fXduGarlhiGs62i3rj8IfHZ6ckjDYvGvqow8T+uXdtZ0yx
ac5t1/Rtd/bw4TcPz0zb0cT/W1bWFa1t61qzKc7tP3b1YmLbuukat2zpp+0a
P/yTMVnf3dQN1mAs/V9RtbTnM/texMu/E7G/yfKbvu3zm6xK/lo3q6wqfuYl
kDCfv+HfunVWlOd2jQ/N5FP/pahmxXw9W9RrY6q6WdNHbh292b7/9vLs9PQb
/fE/nX79WH/85vQ0/Pjw4UP/wOPHT4cH/G+fPn5Cz5qiWo6Gpmce4UdszOvn
5zw9Ve4j/G5Kv7Tfuco1oubv677L5qXjD8Sq+epFe8SfDjLj/5vq/w7Ce9F/
dPv/eDWzz7PqY7v/r5cz+31fdCQ7/n3rmsK1WJB/1dGfSQthZ++aetW4tj2i
NYg9FK5bTv+5LxbTss7y6Twrs4o0SWfcZc3KdfQwdLc9f/Agz7qsa7LFR9fM
8NEZbeMDMrEH94/2AMP9/csPH16/PHt4dpYKU/HhkH6fk0XZfkPbDyl3N2Rx
3Z9+g0D/bmb/3nX0ivBrUci/o/+24z/RMs7tO9Lz67titXINGUrrsmZxw0/Q
qumDmPl+qWzog618cFa57kGjH36AB6aPDoKMrqKq6k6X+rc6o7dNsaKHSrvp
5wQt1o9IS+uaOu8XIgtnd4SnAyTvsbd9CT2dF2XRbe2izNrW5kW76NuWQIFk
WverG9Jf+rGgv9SLHnA7gyG8/IcfXl5/uH7zw3ffvX519d3u1nlMsdfrfrUq
aWL/fzbn9JtD2v/i5bf28u2VPfsaSH3tFvbHoiyzlYMZvM5a+6NbZYRuVz9O
7A/XFwdU/+7ubpa7JQmWlf6mW5cP5N/Ts68f5Av677TduIxMo53hr3+QZfz2
Td5glyt5ytZL3lvaeZbutPXStZ1b3FQFfvtMByJMdo0jS8vtDf1gu9rSRwiM
ivaG3kygvtrau6K7gR5tyEk5MlLXO2iTa/SzOlZOHqcp5jQU4cW1GuST2WMo
w+XbN9dXLz9ckyU8ThWBHuwb6Ba837VrbouFsz9GWkd7IjMQhf2SitAHspL0
5PvZ97Pw67ZvREuOvs+awtJ/MnstnuX6KDy17Mvyi4+N1PF6Zr8jjezLj1lT
FSOdvKb/ktKNHwig8PiQ3uFv9vQpLfoV5Cy2SNtNvkFlbsFc3r5Z95XSB3u9
bQnIW/sfLQka5OHaHnuxn0zsc1etsrJv+gmNmRcZNHizmdknT6ZPH07Icslp
nz6ckXv75oH/2JNvHj05nWEys9OHj8++fvzw6QEVL5xzn4hsNW6GHz24Mxg8
GD5rptOpzeYtHAFRCYWgX35Rz/v5MyFMAbpGKLRe11W5Jb3rW2ePj5TSuKMT
oLr7VLTsO9llygDkrz9/NpEzIL/sjaCFZmckavpzTrAA87F3N65iKByTIDUn
0mRCxe4m62IXQzBHClbb26wscn4HhkhGnlh3y0MDHPnP3V2tf2vNOqNVEWSK
tVUdMSxaZ14seWs7O4eTrPJ2Zj/EmBrsqzVHhzze5IgWKSBNKNB606KtqckE
6IVYC6l2C5vC6jODmUCQZbYlVaXtIZZMOAQh1J+2Ewt3bL07ntAiwLCty1cO
D+eO1JPeTuPptMOAfYv/ksyLFVQ3wApJNRVo67p+Y4kLEQJhhhVNYcrSpb3I
zcaFXZzZH6pcHuIR8oIXjTWrduQJGaCh5o4mAk9V0yAZAT8oQQX0opFyP+mw
b5u6w45kJe0IxRRzhs1FU7fttJMYAzzGlgTW5AUmTGbxAbXB+XZDsp8wlt0D
mIqsdc9qGYO1CWA9M2a8/UuWM9SphxjKLSa3JkwnOtyuJ5Z+gF0RnPysz2Vd
x4zLruvclROTi9X02Ib2IG+yy6Ze04xKyF8szGuQro1047YgfRxYtaWwofEw
RS/IoS9sHcV6UzqsgLSKPyxP1k3rPdWDR1PRIqbDINRNRhDRLzp640xAY13k
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
yDgMg8Pjmfm/+pY+vDB4AAA=

-->

</rfc>
