Skip to content

Anchor the HTTP/1 slowloris rate window at the first request byte#184

Merged
williamthome merged 1 commit into
mainfrom
fix/slowloris-keepalive-reuse
Jun 24, 2026
Merged

Anchor the HTTP/1 slowloris rate window at the first request byte#184
williamthome merged 1 commit into
mainfrom
fix/slowloris-keepalive-reuse

Conversation

@williamthome

Copy link
Copy Markdown
Member

Description

A reused HTTP/1.1 keep-alive connection that idled past the 1s grace had the idle gap counted as slow transmission by the anti-Slowloris rate check, so its next request was silently dropped (502/503 behind connection-pooling proxies like nginx upstream keepalive or ngrok). The rate window now anchors at the first received byte of each request instead of at keep-alive loop-back, excluding the idle wait.

The window was reset at keep-alive loop-back, so a reused connection idle past the grace had the idle gap counted as slow transmission and its next request silently dropped (502/503 behind connection-pooling proxies). Measure from the first received byte instead, excluding the idle wait.
@williamthome williamthome merged commit bff6fc7 into main Jun 24, 2026
15 checks passed
@williamthome williamthome deleted the fix/slowloris-keepalive-reuse branch June 24, 2026 22:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant