Add proper CORS preflight origin validation #5740
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed that the recently introduced CORS preflight validation in 270fa6d was not properly performed for option values other than
*
which can lead to a vulnerability of unintended cross-origin resource access if the user configures a actual origin option value instead of a wildcard. The server would unconditionally accept a preflight request to a resource even if origins do not match.With this commit any other option value than
*
ornull
leads to a comparision of the mandatoryOrigin
client header and 200 is only sent if they match.I did a few tests using
curl
to validate it works as expected.