Correctly handle whitespaces in HTTP header names as defined by RFC72…#9585
Merged
normanmaurer merged 1 commit into4.1from Sep 20, 2019
Merged
Correctly handle whitespaces in HTTP header names as defined by RFC72…#9585normanmaurer merged 1 commit into4.1from
normanmaurer merged 1 commit into4.1from
Conversation
…30#section-3.2.4 Motivation: When parsing HTTP headers special care needs to be taken when a whitespace is detected in the header name. Modifications: - Ignore whitespace when decoding response (just like before) - Throw exception when whitespace is detected during parsing - Add unit tests Result: Fixes #9571
Member
Author
|
@netty-bot test this please |
slandelle
reviewed
Sep 20, 2019
| // response message before forwarding the message downstream. | ||
| if (ch == ':' || | ||
| // In case of decoding a request we will just continue processing and header validation | ||
| // is done in the DefaultHttpHeaders implementation. |
Contributor
There was a problem hiding this comment.
side comment: DefaultHttpHeaders#validateHeaderNameElement uses a long switch/case to detect illegal characters. Wouldn't it be more efficient to use a BitSet?
Member
Author
There was a problem hiding this comment.
Thats something we may want to measure :)
Contributor
There was a problem hiding this comment.
Of course. Will do next week.
normanmaurer
added a commit
that referenced
this pull request
Sep 20, 2019
…30#section-3.2.4 (#9585) Motivation: When parsing HTTP headers special care needs to be taken when a whitespace is detected in the header name. Modifications: - Ignore whitespace when decoding response (just like before) - Throw exception when whitespace is detected during parsing - Add unit tests Result: Fixes #9571
ccaominh
added a commit
to implydata/netty
that referenced
this pull request
Dec 12, 2019
Backport netty#9585
dalaro
pushed a commit
to dalaro/netty
that referenced
this pull request
Mar 30, 2020
…30#section-3.2.4 (netty#9585) Motivation: When parsing HTTP headers special care needs to be taken when a whitespace is detected in the header name. Modifications: - Ignore whitespace when decoding response (just like before) - Throw exception when whitespace is detected during parsing - Add unit tests Result: Fixes netty#9571 (cherry picked from commit 39cafcb)
dalaro
added a commit
to dalaro/netty
that referenced
this pull request
Apr 7, 2020
Compared against 4.1.25.6.dse, this tag cherry-picks upstream commits that fixed bugs in HttpObjectDecoder/HttpRequestDecoder, plus two intermediate refactoring commits that indirectly affect those bugfix commits. What follows is a list of PR links, issue links, CVE links, and hashes associated with the cherry-picked commits. Verify we do not receive multiple content-length headers or a content-length and transfer-encoding: chunked header when using HTTP/1.1 (netty#9865) https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7238 netty#9861 netty#9865 8494b04 Detect missing colon when parsing http headers with no value (netty#9871) GHSA-cqqj-4p63-rrmm netty#9866 netty#9871 a7c18d4 Fix typos in javadocs (netty#9527) skipped Correctly handle whitespaces in HTTP header names as defined by RFC7230#section-3.2.4 (netty#9585) https://nvd.nist.gov/vuln/detail/CVE-2019-16869 netty#9571 netty#9585 39cafcb Use `AppendableCharSequence.charAtUnsafe(int)` in `HttpObjectDecoder` (netty#9492) netty#9492 85fcf4e use checkPositive/checkPositiveOrZero (netty#8835) netty#8835 4c64c98 HttpObjectDecoder ignores HTTP trailer header when empty line is rece… (netty#8799) netty#8736 netty#8799 91d3920
dalaro
added a commit
to dalaro/netty
that referenced
this pull request
Apr 7, 2020
Compared against 4.1.34.2.dse, this tag cherry-picks upstream commits that fixed bugs in HttpObjectDecoder/HttpRequestDecoder, plus two intermediate refactoring commits that indirectly affect those bugfix commits. What follows is a list of PR links, issue links, CVE links, and hashes associated with the cherry-picked commits. Verify we do not receive multiple content-length headers or a content-length and transfer-encoding: chunked header when using HTTP/1.1 (netty#9865) https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7238 netty#9861 netty#9865 8494b04 Detect missing colon when parsing http headers with no value (netty#9871) https://nvd.nist.gov/vuln/detail/CVE-2019-20444 netty#9866 netty#9871 a7c18d4 Fix typos in javadocs (netty#9527) skipped Correctly handle whitespaces in HTTP header names as defined by RFC7230#section-3.2.4 (netty#9585) https://nvd.nist.gov/vuln/detail/CVE-2019-16869 netty#9571 netty#9585 39cafcb Use `AppendableCharSequence.charAtUnsafe(int)` in `HttpObjectDecoder` (netty#9492) netty#9492 85fcf4e
vivek807
added a commit
to deep-bi/netty
that referenced
this pull request
Jul 30, 2024
cmick
pushed a commit
to deep-bi/netty
that referenced
this pull request
Jul 30, 2024
…E header (#1) VISA-11: Backported the PR netty#9585 Add fix for http request smuggling, cause by obfuscating TE header.
vivek807
added a commit
to deep-bi/netty
that referenced
this pull request
Aug 2, 2024
Added fix for http request smuggling, cause by obfuscating TE header.
vivek807
added a commit
to deep-bi/netty
that referenced
this pull request
Oct 3, 2024
* [maven-release-plugin] prepare for next development iteration * Use the Runnable.run method to clean direct byte buffers if avaiable. Motivation: In JDK9 the Cleaner.clean method cannot be called as it is not exported from `java.base`. `Runnable.run` should be called instead. Modifications: Pick Runnable.run if the cleaner implements Runnable. Otherwise try the clean method on the class implementing the cleaner. Result: The cleaner for direct byte buffers is run on JDK9 as well as earlier JDKs. * VISA-11: Added fix for http request smuggling, cause by obfuscating TE header (#1) VISA-11: Backported the PR netty#9585 Add fix for http request smuggling, cause by obfuscating TE header. * DEEP-462: Backported the [PR](netty#9871) --------- Co-authored-by: Norman Maurer <norman_maurer@apple.com> Co-authored-by: Carsten Varming <cvarming@twitter.com>
vivek807
added a commit
to deep-bi/netty
that referenced
this pull request
Oct 3, 2024
* [maven-release-plugin] prepare for next development iteration * Use the Runnable.run method to clean direct byte buffers if avaiable. Motivation: In JDK9 the Cleaner.clean method cannot be called as it is not exported from `java.base`. `Runnable.run` should be called instead. Modifications: Pick Runnable.run if the cleaner implements Runnable. Otherwise try the clean method on the class implementing the cleaner. Result: The cleaner for direct byte buffers is run on JDK9 as well as earlier JDKs. * VISA-11: Added fix for http request smuggling, cause by obfuscating TE header (#1) VISA-11: Backported the PR netty#9585 Add fix for http request smuggling, cause by obfuscating TE header. * DEEP-462: Backported the [PR](netty#9871) * DEEP-462: Backported the [PR](netty#9865) --------- Co-authored-by: Norman Maurer <norman_maurer@apple.com> Co-authored-by: Carsten Varming <cvarming@twitter.com>
vivek807
added a commit
to deep-bi/netty
that referenced
this pull request
Oct 3, 2024
* [maven-release-plugin] prepare for next development iteration * Use the Runnable.run method to clean direct byte buffers if avaiable. Motivation: In JDK9 the Cleaner.clean method cannot be called as it is not exported from `java.base`. `Runnable.run` should be called instead. Modifications: Pick Runnable.run if the cleaner implements Runnable. Otherwise try the clean method on the class implementing the cleaner. Result: The cleaner for direct byte buffers is run on JDK9 as well as earlier JDKs. * VISA-11: Added fix for http request smuggling, cause by obfuscating TE header (#1) VISA-11: Backported the PR netty#9585 Add fix for http request smuggling, cause by obfuscating TE header. * DEEP-462: Backported the [commit](netty@0d0c6ed) --------- Co-authored-by: Norman Maurer <norman_maurer@apple.com> Co-authored-by: Carsten Varming <cvarming@twitter.com>
vivek807
added a commit
to deep-bi/netty
that referenced
this pull request
Oct 3, 2024
* [maven-release-plugin] prepare for next development iteration * Use the Runnable.run method to clean direct byte buffers if avaiable. Motivation: In JDK9 the Cleaner.clean method cannot be called as it is not exported from `java.base`. `Runnable.run` should be called instead. Modifications: Pick Runnable.run if the cleaner implements Runnable. Otherwise try the clean method on the class implementing the cleaner. Result: The cleaner for direct byte buffers is run on JDK9 as well as earlier JDKs. * VISA-11: Added fix for http request smuggling, cause by obfuscating TE header (#1) VISA-11: Backported the PR netty#9585 Add fix for http request smuggling, cause by obfuscating TE header. * DEEP-462: Backported the [PR](netty@07aa6b5) * DEEP-462: Backported the [PR](netty@07aa6b5) --------- Co-authored-by: Norman Maurer <norman_maurer@apple.com> Co-authored-by: Carsten Varming <cvarming@twitter.com>
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.
…30#section-3.2.4
Motivation:
When parsing HTTP headers special care needs to be taken when a whitespace is detected in the header name.
Modifications:
Result:
Fixes #9571