-
Notifications
You must be signed in to change notification settings - Fork 30k
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 for CVE-2018-12122 on Node 6.15.0 does not reset headersTimeout on keep-alive requests #24760
Labels
http
Issues or PRs related to the http subsystem.
Comments
I am seeing exactly the same. Originally appeared as an intermittent "502 Proxy Error" (we have Apache sitting in front of Node), but your telnet reproduce works 100%. Thanks! |
3 tasks
rvagg
pushed a commit
that referenced
this issue
Dec 3, 2018
The backport of 618eebdd17 was not complete, and the starting time to parse the headers was not reset. Fixes: #24760
mcollina
added a commit
to mcollina/node
that referenced
this issue
Dec 3, 2018
The backport of nodejs@618eebdd17 was not complete, and the starting time to parse the headers was not reset. Fixes: nodejs#24760
rvagg
pushed a commit
that referenced
this issue
Dec 3, 2018
The backport of 618eebdd17 was not complete, and the starting time to parse the headers was not reset. PR-URL: #24796 Fixes: #24760 Reviewed-By: Rod Vagg <[email protected]> Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
rvagg
added a commit
that referenced
this issue
Dec 3, 2018
Notable Changes: This is a patch release to address a bad backport of the fix for "Slowloris HTTP Denial of Service" (CVE-2018-12122). Node.js 6.15.0 misapplies the headers timeout to an entire keep-alive HTTP session, resulting in prematurely disconnected sockets. PR-URL: #24803 Refs: #24796 Refs: #24760 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
rvagg
added a commit
that referenced
this issue
Dec 3, 2018
Notable Changes: This is a patch release to address a bad backport of the fix for "Slowloris HTTP Denial of Service" (CVE-2018-12122). Node.js 6.15.0 misapplies the headers timeout to an entire keep-alive HTTP session, resulting in prematurely disconnected sockets. PR-URL: #24803 Refs: #24796 Refs: #24760 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
refack
pushed a commit
to refack/node
that referenced
this issue
Jan 14, 2019
Notable Changes: This is a patch release to address a bad backport of the fix for "Slowloris HTTP Denial of Service" (CVE-2018-12122). Node.js 6.15.0 misapplies the headers timeout to an entire keep-alive HTTP session, resulting in prematurely disconnected sockets. PR-URL: nodejs#24803 Refs: nodejs#24796 Refs: nodejs#24760 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
Using |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The fix for CVE-2018-12122 in Node 6.15.0 looks is not resetting the
headersTimeout
clock once the full request headers have been received and this cause the socket to be destroyed afterheadersTimeout
in a keep-alive connection.I'm not familiar with node sources but looking at the commit by @mcollina to backport the fix to node 6.15.0 I've the feeling that
parser.parsingHeadersStart
is never set to0
once the request headers have been received.However, looking at the commit to fix the same issue in node 8.14.0, the
parsingHeadersStart
is reset to zero in parserOnIncoming().How to reproduce the issue
6.15.0
and lowerheadersTimeout
to get a faster testConnect to the server with
telnet localhost 4050
Send the first request
The connection will be closed right after sending the first line of the second HTTP request
The text was updated successfully, but these errors were encountered: