Vault-4010 Unauthenticated panic when processing "help" requests #14704
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.
Approved PR on enterprise: https://github.com/hashicorp/vault-enterprise/pull/2556
Jira: https://hashicorp.atlassian.net/browse/VAULT-4010
The Vault server's wrapHelpHandler function incorrectly processes the requests sent to the Vault server. It assumes that all request URL paths start with the "/v1/" string, and when they do not, it panics. This panic is then recovered by the Go's HTTP server and while the server does not crash, this process is likely resource exhaustive and can be used for a denial of service attack.
Solution: Fix the Vault's help request processing, so it doesn't panic when the request URL path does not start with the "/v1/" prefix. Validate it before calling the handleHelp function. This will prevent a possibility of triggering an unauthenticated panic in a Vault server which could be used for a denial of service attack.