Repository navigation
Conversation
SSLProtocol read flow control only looked at the incoming BIO, so records OpenSSL writes on its own while reading a non-reading peer (renegotiation alerts, KeyUpdate replies) grew the outgoing BIO without bound. Count that non-application output toward the read high-water mark and re-check it when writing resumes. ANT-2026-RNWRQ22W
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.
SSLProtocolread flow control only looked at the incoming BIO, so records OpenSSL writes on its own while processing a non-reading peer's input (TLS 1.2 renegotiation alerts, TLS 1.3KeyUpdatereplies) accumulated in the outgoing BIO without any bound. This counts that non-application output toward the read high-water mark and re-checks it fromresume_writing(), so the transport stops reading from a peer that does not take the replies it solicits and resumes once it does. Application output is deliberately left out of the sum so that two peers which both write before they read cannot deadlock. The bound is coarse because the check runs after a whole transport read has been processed, so a single ~256 KiB read can still leave about 5.6 MB in the outgoing BIO before reads pause;resume_writing()now re-checks reading in every state rather than only from_do_read().Fixes #160499
ANT-2026-RNWRQ22W