Skip to content

channel: enforce remaining receive window - #1518

Open
sankalpsthakur wants to merge 1 commit into
mscdex:masterfrom
sankalpsthakur:fix/enforce-channel-receive-window
Open

channel: enforce remaining receive window#1518
sankalpsthakur wants to merge 1 commit into
mscdex:masterfrom
sankalpsthakur:fix/enforce-channel-receive-window

Conversation

@sankalpsthakur

@sankalpsthakur sankalpsthakur commented Sep 7, 2026

Copy link
Copy Markdown

Fixes #1505. Original report by afldl.

Reject channel data exceeding the remaining receive window before subtracting its length or buffering it. Cover client stdout, client stderr and server-side data; preserve the existing behavior of ignoring data when credit is zero.

Bounded regressions cover exact-credit acceptance and over-credit rejection across window sizes 0/1/4 and payload sizes 0/1/4/5. They failed on untouched upstream and pass with this change. npm run lint passes.

Full npm test is not green on macOS with Node.js 22.23.2: old-OpenSSH RSA integration exits 255, also reproduced upstream with OpenSSH 10.3, and userauth encountered a localhost timeout. Optional native crypto is absent; unsupported arcfour is skipped.

AI tools assisted with implementation, tests and this description.

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.

[Security] Receive window check rejects only exactly-zero credit — negative window enables unbounded buffering (CWE-400)

1 participant