as a reverse proxy, a 100 continue response is sent prematurely when a request contains expects: 100-continue
Bug #1641238 reported by
Jay R. Wren
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Apache2 Web Server |
Fix Released
|
Critical
|
|||
apache2 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Trusty |
Won't Fix
|
Undecided
|
Unassigned | ||
Xenial |
Won't Fix
|
Undecided
|
Unassigned | ||
Bionic |
Triaged
|
Undecided
|
Unassigned | ||
Disco |
Won't Fix
|
Undecided
|
Unassigned | ||
Eoan |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
This effects trusty, xenial and current httpd trunk.
https:/
As a reverse proxy, a 100 continue response is sent prematurely when a request contains expects: 100-continue. This causes the requesting client to send a body. The apache httpd proxy will then read the body and attempt to send it to the backend, but the backend already sent an error and should be allowed to NOT read the remaining request body, which never should have existed. When the backend does not read the request body mod_proxy_pass errors and returns a 500 error to the client. The client never receives the correct error message.
Changed in apache2: | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
Changed in apache2 (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in apache2: | |
importance: | Medium → Critical |
Changed in apache2: | |
status: | Confirmed → Fix Released |
Changed in apache2 (Ubuntu Disco): | |
status: | Triaged → Won't Fix |
no longer affects: | apache2 (Ubuntu Focal) |
Changed in apache2 (Ubuntu): | |
importance: | Medium → Undecided |
Changed in apache2 (Ubuntu Disco): | |
importance: | Medium → Undecided |
Changed in apache2 (Ubuntu Bionic): | |
status: | New → Triaged |
Changed in apache2 (Ubuntu Xenial): | |
status: | New → Triaged |
Changed in apache2 (Ubuntu Trusty): | |
status: | New → Triaged |
Changed in apache2 (Ubuntu Trusty): | |
status: | Triaged → Won't Fix |
Changed in apache2 (Ubuntu Xenial): | |
status: | Triaged → Won't Fix |
Changed in apache2 (Ubuntu Eoan): | |
status: | Fix Released → Won't Fix |
To post a comment you must log in.
Reverse proxy of 100-continue aware backend, sends 100 continue even when backend does not. This causes a client to think it should write a request body, while the backend may still respond with a 400 and not read the request body. mod_proxy_http then responds with 502 as a result of AH01097: pass request body failed
The backend is doing the right thing: it did not send a 100 continue so it should not be required to read a request body, regardless of transfer encoding or content-length.
Expected:
mod_proxy_http reverse proxy should not send 100-continue to a client unless the backend does.