draft-ietf-httpbis-optimistic-upgrade-02.txt   draft-ietf-httpbis-optimistic-upgrade-latest.txt 
HTTPBIS Working Group HTTPBIS Working Group
Internet-Draft Meta Platforms, Inc. Internet-Draft Meta Platforms, Inc.
Updates: 9298 (if approved) March 17, 2025 Updates: 9112, 9298 (if approved) April 03, 2025
Intended status: Standards Track Intended status: Standards Track
Expires: September 18, 2025 Expires: October 5, 2025
Security Considerations for Optimistic Protocol Transitions in HTTP/1.1 Security Considerations for Optimistic Protocol Transitions in HTTP/1.1
draft-ietf-httpbis-optimistic-upgrade-02 draft-ietf-httpbis-optimistic-upgrade-latest
Abstract Abstract
In HTTP/1.1, the client can request a change to a new protocol on the In HTTP/1.1, the client can request a change to a new protocol on the
existing connection. This document discusses the security existing connection. This document discusses the security
considerations that apply to data sent by the client before this considerations that apply to data sent by the client before this
request is confirmed, and updates RFC 9298 to avoid related security request is confirmed, and updates RFC 9298 to avoid related security
issues. issues.
About This Document About This Document
skipping to change at page 1, line 46 skipping to change at page 1, line 46
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 18, 2025. This Internet-Draft will expire on October 5, 2025.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 39 skipping to change at page 2, line 39
5.1. "TLS" . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5.1. "TLS" . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2. "WebSocket"/"websocket" . . . . . . . . . . . . . . . . . 6 5.2. "WebSocket"/"websocket" . . . . . . . . . . . . . . . . . 6
5.3. "connect-udp" . . . . . . . . . . . . . . . . . . . . . . 7 5.3. "connect-udp" . . . . . . . . . . . . . . . . . . . . . . 7
5.4. "connect-ip" . . . . . . . . . . . . . . . . . . . . . . 8 5.4. "connect-ip" . . . . . . . . . . . . . . . . . . . . . . 8
6. Guidance for Future Upgrade Tokens . . . . . . . . . . . . . 8 6. Guidance for Future Upgrade Tokens . . . . . . . . . . . . . 8
6.1. Selection of Request Methods . . . . . . . . . . . . . . 8 6.1. Selection of Request Methods . . . . . . . . . . . . . . 8
7. Guidance for HTTP CONNECT . . . . . . . . . . . . . . . . . . 8 7. Guidance for HTTP CONNECT . . . . . . . . . . . . . . . . . . 8
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
9.1. Normative References . . . . . . . . . . . . . . . . . . 9 9.1. Normative References . . . . . . . . . . . . . . . . . . 9
9.2. Informative References . . . . . . . . . . . . . . . . . 9 9.2. Informative References . . . . . . . . . . . . . . . . . 10
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 10 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10
1. Conventions and Definitions 1. Conventions and Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
skipping to change at page 8, line 49 skipping to change at page 8, line 49
Future specifications for Upgrade Tokens should restrict their use to Future specifications for Upgrade Tokens should restrict their use to
"GET" requests if the HTTP method is otherwise irrelevant and a "GET" requests if the HTTP method is otherwise irrelevant and a
request body is not required. This improves consistency with other request body is not required. This improves consistency with other
Upgrade Tokens and reduces the likelihood that a faulty server Upgrade Tokens and reduces the likelihood that a faulty server
implementation might process the request body as the new protocol. implementation might process the request body as the new protocol.
7. Guidance for HTTP CONNECT 7. Guidance for HTTP CONNECT
In HTTP/1.1, proxy clients that send CONNECT requests on behalf of In HTTP/1.1, proxy clients that send CONNECT requests on behalf of
untrusted TCP clients MUST wait for a 2xx (Successful) response untrusted TCP clients MUST do one or both of the following:
before forwarding any TCP payload data. Proxy clients that start
forwarding before confirming the response status code are vulnerable
to a trivial request smuggling attack (Section 3.1).
To mitigate the impact of such vulnerable clients, proxy servers MAY 1. Wait for a 2xx (Successful) response before forwarding any TCP
close the underlying connection when rejecting an HTTP/1.1 CONNECT payload data.
request, without processing any further data on that connection.
Note that this behavior will frequently impair the performance of 2. Send a "Connection: close" request header.
correctly implemented clients, especially when returning a "407
(Proxy Authentication Required)" response. This performance loss can Proxy clients that don't implement at least one of these two
be be avoided by using HTTP/2 or HTTP/3, which are not vulnerable to behaviors are vulnerable to a trivial request smuggling attack
this attack. (Section 3.1).
At the time of writing, some proxy clients are believed to be
vulnerable as described. When communicating with potentially
vulnerable clients, proxy servers MUST close the underlying
connection when rejecting an HTTP/1.1 CONNECT request, without
processing any further data on that connection, whether or not the
request headers include "Connection: close". Note that this
mitigation will frequently impair the performance of correctly
implemented clients, especially when returning a "407 (Proxy
Authentication Required)" response. This performance loss can be
avoided by using HTTP/2 or HTTP/3, which are not vulnerable to this
attack.
8. IANA Considerations 8. IANA Considerations
This document has no IANA actions. This document has no IANA actions.
9. References 9. References
9.1. Normative References 9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
 End of changes. 7 change blocks. 
17 lines changed or deleted 26 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/