Fix: HTTP Gzip Decompression Bomb DoS#4136
Open
theteatoast wants to merge 1 commit intotensorflow:masterfrom
Open
Fix: HTTP Gzip Decompression Bomb DoS#4136theteatoast wants to merge 1 commit intotensorflow:masterfrom
theteatoast wants to merge 1 commit intotensorflow:masterfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description:
A remote unauthenticated attacker can crash any Serving instance by sending a small gzip-compressed HTTP request body (< 1 KB) that decompresses into ~100 MB of heap memory. By sending a modest number of concurrent requests (~50-100), the attacker can force the server to allocate multiple gigabytes of heap memory, triggering an OOM kill. The server has no request body size limit, no decompression ratio guard, and no per-connection memory budget.
No authentication is required. This is the default configuration of any TensorFlow Serving deployment with
--rest_api_portenabled.Steps to Reproduce:
Observed result:
Server process is killed mid-operation and exits immediately. All inference capacity is lost:
Impact:
PS:
The report was previously submitted to Google VRP, but it was closed with the note that it primarily impacts service availability. Specifically, "ways to enable denial of service attacks are less of a concern for us." I also wasn't able to find a clear owner or contact, and there doesn't appear to be a security policy in the repository.