-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ext_proc] Filter allows external processor to set 1XX status codes #17570
Comments
We already have code that rejects attempts to delete system headers like :path and :status -- in that case, the filter ignores the response and logs a "debug" message. We'll do the same here for status codes < 200. Open question -- are there other status codes that will cause other problems for Envoy? Should we also ignore attempts to set status codes >= 600 since those aren't a part of the HTTP specs? |
I don't see any indication that other status codes will cause problems, but that might be hidden somewhere deeper than encodeHeaders. Somewhat related to this status code issue is this check in encodeHeaders and it may be possible for the external processor to create a condition where this assert fails. |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions. |
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions. |
Received permission to make this crash public from @htuch and @gbrail
Title: Filter allows external processor to set 1XX status codes
Description:
The ext_proc filter does not validate changes to the response status code. This enables a processor to set the status code to 1XX and violate the FilterManager::encodeHeaders precondition.
Repro steps:
Adding the following test case to the integration test reproduces the crash.
Call Stack:
The text was updated successfully, but these errors were encountered: