<?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-04" 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-04"/>
    <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/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="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 577?>

<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>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V93XIbx5LmfT1FLU/EHtIBQCRFyWt6Z85SlGxrRqI0ouwT
GxMTexrdBaCtRjemq5sUrNCJuZrriY2Jvd6n2AfYR/GTbH6ZVdVVDYCy52Yn
JnwgAqiuysr88sufKkynU9WVXWUu9euyK5dZV9ZL/cP7928fPdbXTV2bvCub
Gi+7bF3WGf+rrPXrvurK6XtTZ3Wns7rQ189vpt+19DFT6OdmUzXbtak7q7L5
vDV3lzzmA0P6pze1Kpq8ztY0o6LNFt20zX7ONptsuuq6zby00zwMgZfDENPT
C5VnnVk27fZSz/ONsv18XVpL73XbDY338sX771TWmuxSX202VZnz9yxP/53J
qun7cm3UfdN+WLZNv7nU7pHqg9nSX4tLpadONnj1Dz++vMb/DhOil1llbE4y
3Hkjminee//qVuem7coFpmG0zZuNwRsX52ckDFuULX3VYGL/3BvbKVVu2kvd
tb3tzk9Pvzk9V7ajif+PrGpqWtvWWLUpL/U/dk0+0bZpu9YsLL3arvHin5TK
+m7VtFiD0vR/ZW1pz2f6nYiX/yZif50Vq972xSqrk3ebdpnV5S+8BBLms9f8
V7POyupSr/GlmXzrv5X1rJyvZ3mzVqpu2jV95c7Qk/W7767Pz86+cS//y9nX
F+7lN2dn4eXp6an/wMXF0+ED/q9PL57QZ1VZL0ZD02ce4yU25tWzS56eU+4j
/G1Kf9Tfm9q0oubvmr7L5pXhL8Sq+fK5PeJvB5nx/03d/w7Ce95/MPvfvJnp
Z1n9we5/93qmf+jLjmTHf7emLY3Fgvyjjv5MWgg7e9s2y9ZYe0RrEHsoTbeY
/nNf5tOqyYrpPKuymjTJzbjL2qXp6MPQXXv56FGRdVnXZvkH087w1Rlt4yMy
sUcPj/YIw/39i/fvX704Pz0/T4Xp8OGQfl+SRel+Q9sPKXcrsrjuT79BoH83
039vOnpE+LMo5N/Rf+34LVrGpX5Len57Xy6XpiVDsSZr8xV/glZNX8TM90tl
Q1+08sVZbbpHrfvyI3xg+vggyLhV1HXTuaX+rZvRm7Zc0ocqvennBC3aj0hL
69qm6HORhdE7wnMDJM/Rd30FPZ2XVdltdV5l1uqitHlvLYECybTplyvSX3pZ
0jtN3gNuZzCEF//w44vb97evf/z++1cvb77f3TqPKfp23S+XFU3s/8/mnH1z
SPufv/hOX7+50edfA6lvTa5/KqsqWxqYwavM6p/MMiN0u/lpon+8vTqg+vf3
97PCLEiwrPSrbl09kn9Pz79+VOT036ndmIxMw87w7h9kGb99kzfY5Vo+pZsF
7y3tPEt3ar10dWfyVV3ir9+6gQiTTWvI0gq9ohe6azR9hcCotCt6MoH6cqvv
y24FPdqQkzJkpKY30CbTuu+6sQryOG05p6EIL26dQT6ZXUAZrt+8vr158f6W
LOEiVQT6YN9Ct+D9bk17V+ZG/xRpHe2JzEAU9ksqQl/IKtKTH2Y/zMKfbd+K
lhz9kLWlpv9k+lY8y+1R+NSir6ovfmykjrcz/T1pZF99yNq6HOnkLf2XlG78
gQAKF4f0Du/ps6e06JeQs9gibTf5BidzDeby5vW6rx190LdbS0Bu9X/WJGiQ
h1t97MV+MtHPTL3Mqr7tJzRmUWbQ4M1mpp88mT49nZDlktM+O52Re/vmkf/a
k28ePzmbYTKzs9OL868vTp8eUPHSGPORyFZrZnjpwZ3B4NHwXTWdTnU2t3AE
RCUcBH365Dzv58+EMCXoGqHQet3U1Zb0rrdGHx85SmOOToDq5mNp2Xeyy5QB
yF9//qwiZ0B+2RuBhWZnJGp6uyBYgPno+5WpGQrHJMiZE2kyoWK3yrrYxRDM
kYI1+i6ryoKfgSGSkSfa3PHQAEd+u7tv3HtWrTNaFUGmWFvdEcOidRblgre2
03M4ybqwM/0+xtRgX1YdHfJ4kyNapIA0oYD1pkVb05AJ0AOxFlJtC5vC6jOF
mUCQVbYlVaXtIZZMOAQhNB+3Ew13rL07ntAiwLC1KZYGHy4MqSc9ncZz0w4D
9hb/JZmXS6hugBWSaipQa7p+o4kLEQJhhjVNYcrSpb0o1MaEXZzpH+tCPsQj
FCUvGmt22lEkZICGmhuaCDxVQ4NkBPygBDXQi0Yq/KTDvm2aDjuSVbQjFFPM
GTbztrF22kmMAR6jKwJr8gITJrP4grPB+XZDsp8wlj0AmA5Zm57VMgZrFcB6
ptR4+xcsZ6hTDzFUW0xuTZhOdNiuJ5pewK4ITn5xn8u6jhmXXjeFqSaqEKvp
sQ32IG/Si7ZZ04wqyF8szGuQWxvpxl1J+jiwak1hQ+thih5QQF/YOsr1pjJY
AWkVf1k+2bTWe6pHj6eiRUyHQajbjCCizzt64kxAY10WBTl29QcgIvMYpiwC
IWezMx6ZXDvBR6uhwBxRDa6QxivzRO0EWAALCppK9FuU4JJNCCgE8ZHBkaVa
53BgTA5IWnqIZoRq8CqLgSfWdXLsOeMKVIq+y7orT/qj1auG9vzYAyDhV3Cc
F7PHs8cnMxHQOS/PwSU25qPwLXomsJR0i4Sk5w05jA0kuWehGWuxXiNe3oTF
2gCCSpZEcwIa8owQ9gCSI2SkZz6AewqzxF+d/DA9UpNWlJE2oanuYP5FgVCC
pEpKX9J49NkHhPBt4iD8W8kbjwn4/RvfzEgdThx4iuk6vB/LZKI/1M09gaBV
e2PnCWM9GV5FqNuyYyAThsazA9505dqFocp5DDAf3oWdXZsIh6kb+shKcN7D
s4KFeATJOpYVGRgF0E1FSHNnKsYCE74wJQ0wdwxGzmnkgc57lk/CZQOGaTqM
eXSuaD1EJh+Wii47a6rFRM97mUuzyXKeph+aYHPLsEDK8uPztxSsMcK2WW0R
z/Cqo1HX5VKQwe8xO+qwkd8QOblflRShrIkBW3o8uwzWuLojoyFUA+iT4INv
YTBdG6IxoE5YYN60Ali0YcsS3ncD5Ov0omruRfZQcrdmNsLYSnmdnlQPc3da
5CSgM2zUgp6oWMmB7oTaNYRNSOMnV5DBC/yss8KMnF14KBBRjZwebWrVM+hG
Tg9u1j1O/J2bPbyTGWluDOIUnYjLYD4+Cs/UTYN5kH8/YFvEcchfFqDl5N3K
TcYgqANI1IadqmrNz2YfrgIf/E5450qqJ8EnSIiH0CP8UxWNEdW8R+DhSSA7
bYy2E6ta94BNRtiU91XWegiC0y9JUgxX/ChSKKf3HsTFLGQEL2VSabLgQjjL
xfmZOt6T/TrRtH1dD+AtzJHei1lfzy4c+igvb8grOErsEnsVRyZ5YiTP+8Ho
I58OIySSZsCHaXrZoAC8o54Hk/PvW6AK/NHGueG5WWV3Ja1yjq8bIp4YoGm3
A3o750Sa4jOlJNIOIcf+cO6CtFHdS6i4Sp1+Tq4MZkDyb/I8s/LXBXFlQP/P
gT0jHYqUoWNZZJ7eAkTLZRRbVuxBdqiXZyKkw1d7EBH+RhtCxTwQXXbS7OZS
ZoF1LZAppuepAQBgb9nvY8ECXPTHnBgm7ESNseAhFNDHDZiEN3L3GdKZRdkS
O2i96u0HC5/OkTVDwbxGr1iUNWKRdhsIZvoUjc1gEIPm5FkLPH2AZotfXzWV
GIoanOWUvOSyRBYzGp0MuKmDYGGaYlEw//DgMGEfbFkKm0ejZFF85Eaz5Bf8
4uUbA09hlqpI+x0E+CfAlZM0JB7YoS9/DEHMOH5TEeFO/RzIEikZ7/E9zCKJ
c5ZEzax4Ud7MES5I+sUGWjhAPIH3Q0HeoqnIbtzqlZDnhnM1kZMmGX36NKRO
P38mk7k+5C3AdNp8VXYGtsGWKcECbRbCgYmXhhc79h4hOrk9MIoMMA03O5GA
IUpcBv9PkT8zUScVQKlZ9JUSbj9vPsJ0bAo8nz7FqSNagwYTAgkjBS3Z1Fya
y5scdgVIMS2JbspzPWZ8yztRMcAJtwMn7ducrOnjipbALAUDZHdZWfmsZ4Cc
UUA+8NiDThjYsxPJZSj6CG1hOu7x7TbLbiMktqGetZB6lop2CESpdrxJkgsU
45H6hU3z/D5rjbjaAv6gxNp4D2m4cdoji970Lpc0uUOlYqZvOUjyrDGZZkvE
qu8Yeok8Sg1phljt/aCZQmE/GILipi1IvV//ePv+aCL/q2/e8GvkjF++e/Ec
r29/uHr1KrxQ7hO3P7z58dXz4dXwTdKT1y9unsuX6a86+ZM6en31348kej16
8/b9yzc3V6+OdpgRi4v2Ze4CduL1cP8UISRa+ez67f/932cXpJ3/yZWSiADI
P1BMon/A38jTgvuBCZmtot2nOBWjkJWR4WyIj1SIq0lwK4Qj8K4z9V//VBF3
09Onf/pbJbKLjJ7EKjvbP5SFv1Tqq68kVXz51VfqUl8llJDJC4pYnz9PJEnV
c2C40MeW3NiaUBQuBEmRltwP8zStaZPrjkkwg7LTtnszdxpHRjLkuniOPgrE
U9kkSfW0OGQOhzjjIhQijku8aQbEQTbP83/r4lwZa266eyNh7HqGRSflXe+h
RAbvo9KHeDNPkyaeDkXi2SXGEzBFtjuldzORcdiTbaFGTGCLL+UivUDYO8cm
6Vh4bZZEnjNJSeovpiRpuB3vpn1wvicOH23TEJbvSjOurwWBRiThIQck2Ow0
kEyLuBFSn7z8gWGSAiZqPBmQLk70eZ+OT0ZuXXblYIpPFz0bODkfToLEjopx
qwhKxuqe6SRByvJ45/7yCn9xlvU7CCP5zQ2xorrz3CQ3NHsbKvppmINUnI+H
ID7a3fsMABprk5As8QD9hhiuydawi2TpYDdWFMjLbm26DL6Sl/UiMEhfl/uB
zH/YZPBNI7tj9F8uQ0bsL3pjTV800xWpKgL10lRFGn7SXPaZE9I7Z4Q2xoj+
7g+nzn24QqNgRo+SZ0uWg0S1KjcnjsHyGl0ceFcWPUFLyJ3xyiZsb9CoCM4Y
Armw4XVFnhvxRxrQbKBWEmgh2NkmGzblfI3LebMLdB0eQiUeYAKxQ10bIxpI
DsLJewD/YGuW8P1spt9Eez9y2lb7vKpJlAqZagK9asGjM1yjrLOfQBxnh7zG
yUydgxM1dkgnMnsgqxlzi3v+1G0/53TBVeWqWqRsN+Dux7dXNyeKi2F4MjHJ
qqC9LEI0miPLamWKHAFFcQW8FApuM/V4BktMKhq79sImxfAoTMdLC7tAXmUa
EHmoxCgVtRJFcIT9iRYuyYMEv1sTe7hqq4LfYhRiaXkzZUKsj8uZmU3YNQYC
O28oAMnarXgbe5JQLskXlmu8zxCGXfXm83QShTFcrpG/hxQ9rTR8dvaEvRYp
QFW5ygnxczYDUh+KYNY++eY9tvedJKGD/HCS6LaUhQY5x+KS6oKKPz7kGka6
7dKUgH+O3cGyvCCP60Z5GPTqwDLT4EjILgSG+oy+gi6rurjUe1kDfegP6H6R
zMy7Hjk3lRAIO1TBouSxlnhYIgik8w7wCSUCgRUSv0TxJnOwUPhkcIg4H8Gq
WK3F9N/vqV3uZwwwGAKuEWmI+cLecNhblj6+o2mRjSa2uc66fCUg8PzmVnhF
HyqvD463hY+AQ9Mv33oe4hlmVEGgr1hUsKJKwsBNfAzvv+5XTjrlMpB+sMDR
osyuS6mjdw1rCQlISZLhHS4YvXw79ePTkzPezUxUjlZrFCNj6fsujqLZua8d
fTtUwFyfH0UivMVbDFO2mki/Cl8kk/R6MNMv04SVD5VoBpYciM+kSpbV0Ydo
h+9LDjDaIfsjaVO2lSjh5QukQ+dHCeJHev8ucq5DGSGxDvenqBKjk0pMqFtm
2i+EswvieHNOHIbRQuIzKsJBWq6EVe/bSZfH3S3tK9HAqKr1QCUrFOUCTeac
0qCdqJ2IrMTu+G1mkSHzEMrsSayYxpdI4Rl6pFGR73cyjHHPu5MYHX0Nb8cv
IGfH6uzLUOFxpYvGi/CYx7Lge66H28AivlDOmfdl1U3TatFQ1yEzO1Da4dTo
QyWd3VKO4h6031LN8Tu2r5qjuPtrp6CDWCLHwn3m0Jd2yHgj7O4aPa5Cn8+8
/EapD+EkVfnBSIE3Wy5bs8TcQ61V8js2JGCY6EjNmaPG4NPYnBEowONWTV9w
xDBxhaetn/S8opnpNivKnhs7pZVjRHzWpWWnvezbkOJz+kHG/WanCH8+To//
JhVUgwpql5EJ0MZePslGt8b1dRymIGeCsyJLN7GIu4LgbTJACNHsZ9fBPH0u
1H+DdNhH4ET/SJfJEX4rmnLPLa1Wx/wp8KZxnYxA8Fpw6JmvpvxEq8W8lbpO
EwhDoxw4LhclR9lxYQPiWmrDclSpd5g6qk0udWgIapt7C+2oQVbnLYje2KfQ
WpUIfkiUcyzCG+yENE28zMrkH7h0JIhX2rAQblECEi9D34BtFt09tN33Vsy4
WY82mGW4Dm3zSdgXtnVwXRJACSfZxvU7gXsZLjLFMKcWHd61w34uIEWRY4gW
T5jVHcxYEHSjC1g/Z4TeSA8J7fGVb5R5jUYZ4QaheQbpFXa4hUsNSt2RiADK
HQi/Qa2yerdMCTjLsBEZlzcCYsHNuPBjmnTfm05KftAkcFUX6P6ShdHyHHoT
B/wNl4V8HMKBkpTo91VGXAWCNKBZo1fJAP+nZFR549PQPLmHEtMI5rgGZGll
S9r5NQeY9FTpnQImOQYo7MYBoF89FgiqxVxEaloCkDPMBE6eo8PKMwA8Ls9q
n7hy3VUZ54O4fDjl4wh++GMzW1IABZSlmOiDhNL0KNKZJV56EiopTdkG0JPA
a5O4FSaNoVblcnXoSbUe9YHR0zaZyIqUfdOQkztxiwta5XpJGLg464DmtTgB
aj4uyOm2vrPMNfug8QnHOnbBpUqD/DnTDFJe20tcSv9ckr4NnUy+q26k7oEK
uxo/J6woZi4tRxtS4OGUFiw4b7ebriEmsKGQWCEOLRHWC0mSMWFAoc/RxTTS
lpU4LNlWQqjWFW1V5ihaEm4JKDs7vg7JkAdqW2FQxOs4BmAeyqrAyqDc5KFh
BFltmt5WW6FJVwcSG+w/JhpRUlAj2CdbEeImbAOcxkToDScz4rqNN1/Xoemy
BkWAnKpZuh4yCWviQzDCp11qXdIbwIesZuNi6nIVbIliAsdwfCo14dW7EEai
HNLVA61KgQb56Lj8ioB3yPLty8vwd3bbR/WB9tEm1L5DULe/4H0cZwdP0q6a
UAwfEoOKm+BDow0gyXwE3TJc70Y9H7lM2+Rl5qONtZfyuGKPwbjOG/KMWnpM
3JpQ/UKMShNBc6QfAip1e/MSn5WzXDqh2S5Hm9T/46bYyIHpt/SZcbWIdrxH
l6B08HTbjYu6YhMhNaiJ1jS74K+iAmTkA8gc/vrXv6rbzmz0mf71X/5dv4pc
wYFOB/S3O87067//C/3/PzL9pQUVhMIfSOQkhr+R506zmdsInN/6J/n8r//r
/zA9fkGsGGO5l5eE7Q0MPBb0kdOo6dUR/i3bH83s5fNoBD2MH76mZHXnvLrr
PWjrQk63D9HijkcdDCeXelBK/TfO3U3n8QqT5VRN88FqdEVHCxIXMExf//qv
/zNe5ReWQ1r167/+m/7zuzc331+i1NhXxdCH7j/2TKl3xtL+YznuWOWzP9q4
2uKrydth7Nnw4Sv+sLQ+a2l9djycIz2iQvgyu9VoeFLPBWHHjJWKM26+ERsQ
H9rslPpzyAcKkEe4nZw6OWeCMhmhvGCGVKwpVrfYRuY/X311fajJ+6uvLnFs
iBdkB1iWRMqQvJVFKqAJRU+1AHdIYoCD77b463IxkpWr10t9HlDLjlgChhjk
E/vH9K/2NaJj6i8XHqacuUclMUdBgFsp0eTYIO0g3elOCtE1oCvCJld7dLOj
D8aAPAmUjZjCXUn0EaxHZAQJCr0d6Fb0KV8PtrLga0BzimJY7pUPn11ynxHc
R8Sc2264PuHFTo/i3h4P9mxp9O/yLgb5OxJ/uY5OCdBGcCgydDHRQBEZjotz
UXJpFp0vto4jI69EVJz71TAdX5VN+u6ezp7Ist+lphWfKuDlHzpYoMPBAqnF
jQ7noQUgts82KHwzhCpBb5Izg2Dm0v4TVLkwdlvnK3IaTqEcxdx3bEHOnZEQ
+GRsaEjc7V+XAkllfG/dJG1QklTwel4ueyzf1SIpTrOh59S1zMoBGThBtV9C
e+XDceW7pA/Tjj1t2qZpfSakiY48YBnJiYhmoXbPQIxTMaNjOSUqJUmF2VVO
fI3ZStNw1rkGx71ls1E70JjZCq94S0YYl4NJBEMKBy2YI1YXrWFP0y5nASJK
ximbA0TOtT3/rqrz/lMEX8/OTzDcHvoXHumq8JKYUHHCEDsWshccwiDxDyIe
59xCo6ejjFDJvUdCpKNhh/tF5RratYgREUbwWCDp7njL0C8ZhfhxZUOc5Dgh
GJFtVzjYj9FO5D4MVJyMhWWLS6tDEqNj2yeF3MCqhRfsNrLiL65PjTbbzx11
ehL3BKM4rZBHMDP4C24f2NuA/Ze9W2zRdc07dfaEkPL8NO2WdTVgnz71c0A6
BbkYXmAevLKAlTU+bpRMb2sWFXe6S581LZsgG2dVs3UDPMt+pp0KXQZRL4ga
p+pc1uCGZPhxol/Ud81WtOyaoH+rObHhPHOcQVXJHvnuX0kNFGaREWeTRPBd
2Xak2lPJuA4dUz4bbIoT6XH0TT9IPndDVt015oes5u5JAJA/daCeKYE/b6n0
QtCTQwYWnejsKqS9Ww2y9/N0Vr/Iyqrn3HphpIhicG5UTr66LG20PehK5/RI
2clprXEH6FzyRf4MTjPHIjl95+JLX0tkLCLuJUTQJYCjcP+WE8Wvy3o4+xPl
0oeeRBcqHe6EGNVS5d4Nu8lqG3IBPFshjdJ4jNSTT+q2URkoVtSZZutX8xb3
KEheO83gt0nffoVSMUgXssrHSfxb1mo3DQitcgm1CmkregQ6qeB5osLIiTDv
BICUczjjbIEoS7CSL1QNxq2YceXAZ03Nx9xsHBbS/gFfofBRDHbt9T7fkgXS
qnN+9q5DczvK2VIXeHjIFpgczgrHuM1TUV9wWaTIrJV7W+EDtEdeBFmUNXEm
1N1D06NfXfIg19xclazj7jxM0yqOQ3Z76PjsvayUQg2+KSEROmefnGYJjCdC
yvmOAucAdhbtPLjzCw4+Iw+rfq8LSNopIi+gHPhPkOjzaT1UzqC8yZmirnXu
G8duEteJ1CLsbPrMt9zcmmUAb+9a95ues9VRrdPvU+inQmPCkGMK7hS6w+zz
cC550dfO3cG/9Oh+35vhlhHJBpsxMllZzG6jmO3zlZy+QOQVIWfcyYtNZiBl
rUKyM+12ckSSdX83Me8PtNtIoH5eSA8EVuybBw1iCQIhwhWcK4ia72A65OvY
w8cAwF6OHUq1jQd0OM4BXlIQiu97wt7ullF5yGnV5Oz3WDVJ0qG7iA0qjjUZ
+NQQE5BPL317M05+NZWjwU0bLd53/KAFDewBCovRVJqmO2b6HiL64fhhaGMc
X75xInnrax/buoeT4616V/v8LYlUMWLu0Ev48NyEYNmxYmlYHTdEhiQm9Mw1
0GCwUeozTXBx5vpdvBtBj0E6s6U0CJAt8MoncsiuKn/BbSZYgiCPtBSEHfNn
tCwX8YZKAFPECBPT41YStTYh+yzJAgaTqUiAzxnG/aGc9hbBGxz544dKItlr
UnpCMhGry7JJI2KIrDmn5GcoTCLZpppvwdk9LSU3UoReAT6jnPbo71YNd+PB
HaKT9UXpNHWKxEnacNDUiWXIWXNQY/Wwiz+OTPoEBig5daEX2OcsmDnyGd5e
kzI8aMDwmWiKvFnOqyHXYYftHBlbZGC6r12F22PJ89BJ+b1rY4jFw4VVKz1B
rrAyiuhD7ic0DYlIxVxf1P1aTpyzbvZVxYQxY+cYM8bAIXbucWP14XJNvYv2
OD4nLZBkYd+B83HQkZVMSnyB9EBT6yTqd/QgzC0tvsTEmWXfsceHMvYWK5Ma
Eacv9P42cUQVsKUw0b2j0eQnggVbRBHsnVxSE8BqHG1F79t0KmYcB8Hu8Efo
sXHJfS+LnTwmCno+XZAWbB48ARgG5MsFTAnp8bU/U+I3PwvR+Y/yHx34j9QI
p7jpJ+pXb6VVbTj9OAp8x22bQ1/1xYyvHirbtUiNQihvddK0vL/AsnMWkLvM
nSvg1EZ8fBJtPWvDSbENmkyQPnXdJyGdyuWp+2wb9i9nZQN6tWgciYHlQLw8
U09m+ifRExli8I2uK2VP7nivw4yLhwxjfPOBkOE5xFsRpkELZBVJF4RN8DRu
BgAqiE/LE46EuLnmDiHXBnBHSoTQfMrF8iCjxEH7RAKP6o3Aa+UIkxxuKtzk
RJH+uPtk6Jvnm6bQ2MEHYggNXyYpjgCJrFBxBvGnKHX4ftQgFjkAR6rZHY3o
XaBnU74yUaFS1m8G/XuA0LjUAvu2EACrOFvis5YuBWI1nyB2IozrxwEzSqwS
XKaMbqXxnILzpRLr7bBXfozrpZpBRvII5beGE1PTtVnjuL63NV7yRPaSSzRD
rwaRXSIDKgo9EuGiaoRYl8+ou5bHnA/3JQlpl9YOoaCR6xMyyH1BmjLdECnS
TuYxQeIWAlqeTa4CUtK7sJZsiZGWiKyIqnaZv9skvlmF7wBYmwwVFvi+7Q5v
Srr0/mjVTuJdTv5zk1Go4Qz6JbKL7znhFGuat3TMtSht22+kn9rFB0MpdAg2
WgfeiudH2H0ZtbHrNaKg6GK9UdwZbqfyqiQlRk/dSMkoaoYCMBMYkgwQ1EyP
WZny8hav0wqH2Ya8GYvXnRkNLiDQY3TywxePL4XF4yNidp5mWOdbuZbIBaIN
jriAm427QKNNEPFfjvcG6UKgsguDJFLYd5PZ3qvR+CoZYgNwnsPK+Zy4NXAw
XZL8mhpUnUv+UI6mjLYWBYutFdF9UbqsuSoauUJn6ImKECrk3vH8oYYmTgpE
iJYMyulvJWPDonHmIjflLphxuH9HAzftbltKpxmEEKjH0YpxR5vCfVbDLVZm
velc148J1PIQi0LxSO1kDqSWFc5LYIRpxc1eMi5WvHR32pLljxPLgQfzHQDT
oV80JNIngbff4yrM2qtPVDSMNSmJGOJUcJoT5LJduGPy2pHSoXwXWtMGZXKK
INfdjPWO4RJH9MICvo26XOMcND7lj2UNt7/4puf9rcWvgRM3Df6ir1zL6a04
OvVsTxdw/oUGZPZ3Q7dxs9i9sMNdcTCUE46Hvi2JvuCKUv+erxraMEkXuRts
ln3GKX5x2jGLb9r4fkaePgrxd5i/ECPllvHl1uI4ZNjXU6x+X0+x3u0p5hQr
jmfwOT3L/mzRMz1ysxzJQqIdqWdUrCj+AInXGXIJddHcu9MOCeNyh0srd2Q1
JEdH25pxpm+4F90lkpwODW7kdbhpg68NzdwdeTsn08PHDp3a4PwpDGDM33Fm
sW/v+B4j7g+3vjoTDmzVpuMOe6YKrtZlSTHzFXswINSfy+l3JcbKTVVho05m
0dyjo1h8DAoEwDWj+74ftO327SLLjTp81uZyXIj0thuxiSj+cA3mEUfks6qT
Q2f6htN6OHRd+8qRFOI9SZXg4aEYyctT8hBhayK3rqKqklCyvXvJviRSEpIO
vMciOeOepjgceR90RQBk0Kjpy+fTZ3wc6BW6DZ5xtwEf+7pt1iYpAKVnPBMi
RYPImaKoZYHphDVGffok16R//nyirWuWkcM+cJNVUy+dg8nSyHqsmYPDYTbm
yJTsZDhgK5XNkk095woXojp2S4tObnF0PtOd+RO9c4nroWdFvCMybe66Pp7w
1N1DsFVDQ3N0x8LQr+KpRuCmSOsmuhvU2l6CgBOx5itf/AMYAcq6D/dRRu52
tEgu9Q5hghyajRM4qMxzNCJ089i6vng/AM6oxImURp7gePthzxsfbvcd31N8
lbO50s7MvrfbiidBqREmT/tHlCj3UkuuwWOH4+4LRCi2u9ovKR59eJUlV0aE
/cNMcfkXYMIqiTy48NcxN2Lb+LJaX7oeA/STlHydqZMjuys5Wx33v/zmm7uG
S2VdFATKJeejpRUjrcH5S/BCHKFwLK0tKmEC9JB7PeZXIob7VD4NjoMmv6UR
HC/yvVXa8TuIxXeHBgGgxbOm7fb3PUKxhnOGU9+l4lQ8ugTPVV2wCheVJZmJ
iZLxBMCtu/kh8HdWPD+469LhKHRHwpu0nCTweOCHMARvn7sq1Ws/WbGKh5J3
0Q2CO/cqSD5PjfJ5vCHRvSrjK2W5cmhcHptLZv5+Anep63DHyGBOXP6Mj4MH
FRo19KBcKRcOxndjzL54cWRys0Zp3boVr9udoB4A1d+pE12tu+msP66/0wyI
OY1qJwwPSUwYMM9LLr1kMVz7o5AA4PsDGdHrvZcq4jcPWsNRI/okjuJrJo9O
hoPLAscD34/xMa1rjO9gVOHe7uik1f5LGCfRtQhDpZYE/MFYJVcwRp01LLHh
IkL6HiJHZHTlAyNCS9/H9ZdD9Jp1aUnUujsX5ByzMDUjZ3tIqDZqjSLBcggH
PBi01vcP3/Mdk2i/kaMFbEkuISX64cKn6JZpXxX2abKDF6/t0MJw6d5slK10
3XC232zY5WNbgEmMa0kcr2o51yt6JjNxHSa+FnMTZvouagwQUNirFEnb+lPe
naEBuAtpdsEvdfgubW67IjVtomxg+pyhDiQcZ9yX5lEZU1gioV7vxnJ4ZBQy
cHD98urman9gHUwRDrdu5JOZO8cr13rDRyj16bKv6349h7/5jDtzclzMXJli
GYlPIJ++799zlDn0oY9/8KSpRxU2MbD5VsW/FYJd2/cLIaOrqyZJG6MLQhxL
k+xgXHfHT0bdW3fZZbV1h+HcAnBeNV6FGt9xKJx9uMxdWouj29jHPjPcJH03
+t0MmlPSwQUbMR9x0HJH5tcunGNOOj09pf05PYMuOoqU3GOEJ6bJgseu42t0
kPZ4aEUgyPMMCkiKk8WIT/zJI+5gjs4qFcmRpvus+uBTltGY/qm/o8NrdJVu
hMl+sC+0iRwe4Ikf4EsRufsBneTraFIW8AvlF7mXhlODUlCI2TU4mBqxb8FM
XGb5JQc2+CvnrtXo1s39vj2aLe6mf+d/PWZqfRRWelBdNMmVN5OY4EwiIJEr
Q/jqVOex5Bo3OTwsXCSomyis1cONh8CR0/P4q3yzhb8V3bQtgaNQ8tFddOjJ
2DK16jfySxNISJSOlAdUibEhQMtGUuhZF9OybmUO38Yd39H64KWNoOmbKuMA
OfbjoHr4yRxcnIecEE//W7ewEX6IFSjU+3mBsWC5C2C4AmaTbfh6FNJMtMND
evJtRujTxw4B/gM5gqAsCsoC8G1Ded2FzbE+x6o8Cq/V3tBxiLHRIfJbgzU1
ykFIKd2nIL71yz1cz1T765kxDnx9MrqVIq5uqQHYyUZzJnw77TBRatt1+hER
mbrWTFoEMCg9oRBQiZ1FkpwXQhcl5zl0qdVOJn5tMvjJIREf/2QYMquhr9bF
9GoMSPEusv5cxLpHgoh/vIOpcp6jW8hwzkYa7KUmHx2EVzv0/zgxM5+dk2S1
XpBjhrcf/SSDvxnk+OBNRSfxj2wcH4DAk4nacx/evp+tCExWLngvUH6S1h/U
Gv3vlkyHh55PaX+icwU2MX7OIfITySqZUPhzQ/GZKU4rcW/8As0UaPKHD/HX
+4yJg/9phwdu72F98hccMZr623v40kJ0QbkffOCZKr7dIlzpsx1lvCdJ1XB0
3yu2dm5Y2RRCtZD/Tn95QpYNEeCHDTGNZ2iDzlf3JOBfwmWRvvsLac7/B+rP
G3lfdAAA

-->

</rfc>
