X Tutup
The Wayback Machine - https://web.archive.org/web/20210120175418/https://github.com/nodejs/http-parser/pull/480
Skip to content
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

Fix http_parser_parse_url to handle very long URLs #480

Open
wants to merge 1 commit into
base: master
from

Conversation

@piru
Copy link

@piru piru commented May 9, 2019

Earlier http_parser_parse_url would incorrectly parse very long URLs: The resulting off and len parameters would just get truncated. Even though very long URLs are typically considered invalid by servers they could still end up being parsed by http_parser_parse_url. Thus it's better handle this situation gracefully.

This change is unfortunately not backwards ABI compatible due to changes in http_parser_url structure field types, hence the major version number bump.

Earlier http_parser_parse_url would incorrectly parse very long URLs: The
resulting off and len parameters would just get truncated. Even though very
long URLs are typically considered invalid by servers they could still end
up being parsed by http_parser_parse_url. Thus it's better handle this
situation gracefully.

This change is unfortunately not backwards ABI compatible due to changes in
http_parser_url structure field types, hence the major version number bump.
@piru
Copy link
Author

@piru piru commented May 9, 2019

I'd also note that the issue of failing to parse very long URLs properly might also have a security impact: For example if a security critical code would use http_parser_parse_url function to parse the path of a request and then examine the path to see if it should be passed thru some filter. Due to this issue the parsed and actual paths could differ, which might result in filter bypass.

However, to be exploitable the actual implementation would still been to accept the very long URL.

If this PR is deemed too drastic of a change, alternatively adding checks for off and len overflows should be done instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.
X Tutup