Skip to content

Conversation

@bneradt
Copy link
Contributor

@bneradt bneradt commented Oct 26, 2021

Per spec, Transfer-Encoding is only supported in HTTP/1.1. For earlier
versions, we must reject Transfer-Encoding rather than interpret it
since downstream proxies may ignore the chunk header and rely upon the
Content-Length, or interpret the body some other way. These differences
in interpretation may open up the door to compatibility issues. To
protect against this, we reply with a 4xx if the client uses
Transfer-Encoding with HTTP versions that do not support it.

@bneradt bneradt added this to the 10.0.0 milestone Oct 26, 2021
@bneradt bneradt self-assigned this Oct 26, 2021
@bneradt
Copy link
Contributor Author

bneradt commented Oct 26, 2021

The 8.1.x PR for this is: #8305

Per spec, Transfer-Encoding is only supported in HTTP/1.1. For earlier
versions, we must reject Transfer-Encoding rather than interpret it
since downstream proxies may ignore the chunk header and rely upon the
Content-Length, or interpret the body some other way.  These differences
in interpretation may open up the door to compatibility issues. To
protect against this, we reply with a 4xx if the client uses
Transfer-Encoding with HTTP versions that do not support it.
@bneradt bneradt force-pushed the reject_transfer_encoding_in_pre_http1_1_requests branch from 19b7d3c to 81a72bf Compare October 27, 2021 17:06
@bneradt bneradt merged commit 4553b4f into apache:master Oct 27, 2021
@bneradt bneradt deleted the reject_transfer_encoding_in_pre_http1_1_requests branch October 27, 2021 18:35
pull bot pushed a commit to kalagxw/trafficserver that referenced this pull request Oct 27, 2021
Per spec, Transfer-Encoding is only supported in HTTP/1.1. For earlier
versions, we must reject Transfer-Encoding rather than interpret it
since downstream proxies may ignore the chunk header and rely upon the
Content-Length, or interpret the body some other way.  These differences
in interpretation may open up the door to compatibility issues. To
protect against this, we reply with a 4xx if the client uses
Transfer-Encoding with HTTP versions that do not support it.
bryancall pushed a commit that referenced this pull request Oct 27, 2021
Per spec, Transfer-Encoding is only supported in HTTP/1.1. For earlier
versions, we must reject Transfer-Encoding rather than interpret it
since downstream proxies may ignore the chunk header and rely upon the
Content-Length, or interpret the body some other way.  These differences
in interpretation may open up the door to compatibility issues. To
protect against this, we reply with a 4xx if the client uses
Transfer-Encoding with HTTP versions that do not support it.

(cherry picked from commit 6e50701)
@bryancall bryancall modified the milestones: 10.0.0, 9.1.1 Oct 27, 2021
zwoop pushed a commit that referenced this pull request Nov 9, 2021
Per spec, Transfer-Encoding is only supported in HTTP/1.1. For earlier
versions, we must reject Transfer-Encoding rather than interpret it
since downstream proxies may ignore the chunk header and rely upon the
Content-Length, or interpret the body some other way.  These differences
in interpretation may open up the door to compatibility issues. To
protect against this, we reply with a 4xx if the client uses
Transfer-Encoding with HTTP versions that do not support it.

(cherry picked from commit 6e50701)
@zwoop
Copy link
Contributor

zwoop commented Nov 9, 2021

I don't know what's going on here, but the commit ID above is "empty", whereas 6e50701 does have the changes here. So I've cherry-picked that to 9.2.x.

moonchen pushed a commit to moonchen/trafficserver that referenced this pull request Mar 17, 2022
* asf/9.2.x: (50 commits)
  Updated ChangeLog
  Reject Transfer-Encoding in pre-HTTP/1.1 requests (apache#8451)
  Better TLS Secrets Truncation. (apache#8489)
  ssl_secret debug printing: print only the first 50 bytes (apache#8483)
  Define TS_HTTP_VALUE_BROTLI and TS_HTTP_LEN_BROTLI (apache#8477)
  Fix case of brotli (apache#8476)
  TSSslSecretSet: Update SSL_CTX TLS Secrets (apache#8368)
  Adding doc/README.md (apache#8420)
  Doc: fix typos in Strategy documentation (apache#8408)
  Refactors and promotes the Txn Control mechanism with Get() and Set() (apache#8428)
  tests: Add shbang to python scripts with a main (apache#8430)
  Remove empty tests/unit_tests directoy+makefile (apache#8429)
  Adds new API: TSVConnSslSniGet (apache#8313)
  rate_limit: convert to using TSVConnSslSniGet (apache#8414)
  Update the Multiplexer Docs for Multplexed HTTPS Connections (apache#8440)
  bigobj: use automake to build test utilities (apache#8441)
  Make sni.yaml errors cause an unrecoverable TS crash at startup. (apache#8208)
  Fix timeout checks of NetHandler::manage_active_queue() (apache#8287)
  Fix Multiplexer POST/PUT Body Handling (apache#8439)
  Document proxy.config.memory.max_usage (apache#8450)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants