-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Teleport doesn't handle PuTTY winadj
messages
#19365
Comments
webvictim
added a commit
that referenced
this issue
Dec 17, 2022
webvictim
added a commit
that referenced
this issue
Feb 3, 2023
webvictim
added a commit
that referenced
this issue
Feb 12, 2023
webvictim
added a commit
that referenced
this issue
Feb 26, 2023
avatus
pushed a commit
that referenced
this issue
Feb 28, 2023
* sshserver: Correctly handle PuTTY winadj channel requests Fixes #19365 * Actually send a failure * dispatch changes * Reimplement wantReply handling * Also handle windadj in forwarding server * lint: Fix typo * lint: Invert return order to put err last * Use nil return payload instead * Use trace.ReplyAlreadyHandled instead * Handle reply internally and set req.WantReply to false * Use t.Cleanup() * behaviour is not a misspelling but whatever makes you happy * Suggestions from code review
webvictim
added a commit
that referenced
this issue
Feb 28, 2023
* sshserver: Correctly handle PuTTY winadj channel requests Fixes #19365 * Actually send a failure * dispatch changes * Reimplement wantReply handling * Also handle windadj in forwarding server * lint: Fix typo * lint: Invert return order to put err last * Use nil return payload instead * Use trace.ReplyAlreadyHandled instead * Handle reply internally and set req.WantReply to false * Use t.Cleanup() * behaviour is not a misspelling but whatever makes you happy * Suggestions from code review
webvictim
added a commit
that referenced
this issue
Feb 28, 2023
* sshserver: Correctly handle PuTTY winadj channel requests Fixes #19365 * Actually send a failure * dispatch changes * Reimplement wantReply handling * Also handle windadj in forwarding server * lint: Fix typo * lint: Invert return order to put err last * Use nil return payload instead * Use trace.ReplyAlreadyHandled instead * Handle reply internally and set req.WantReply to false * Use t.Cleanup() * behaviour is not a misspelling but whatever makes you happy * Suggestions from code review
webvictim
added a commit
that referenced
this issue
Feb 28, 2023
* sshserver: Correctly handle PuTTY winadj channel requests Fixes #19365 * Actually send a failure * dispatch changes * Reimplement wantReply handling * Also handle windadj in forwarding server * lint: Fix typo * lint: Invert return order to put err last * Use nil return payload instead * Use trace.ReplyAlreadyHandled instead * Handle reply internally and set req.WantReply to false * Use t.Cleanup() * behaviour is not a misspelling but whatever makes you happy * Suggestions from code review
webvictim
added a commit
that referenced
this issue
Mar 1, 2023
…22421) * sshserver: Correctly handle PuTTY winadj channel requests Fixes #19365 * Actually send a failure * dispatch changes * Reimplement wantReply handling * Also handle windadj in forwarding server * lint: Fix typo * lint: Invert return order to put err last * Use nil return payload instead * Use trace.ReplyAlreadyHandled instead * Handle reply internally and set req.WantReply to false * Use t.Cleanup() * behaviour is not a misspelling but whatever makes you happy * Suggestions from code review
This issue was fixed and backported. The fix should be out in the following versions when released:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Expected behavior: PuTTY sometimes tries to request a channel with the name
winadj@putty.projects.tartarus.org
. It does this expecting a channel request failure in response and uses the latency of the entire roundtrip to calculate some internal timing information used for dynamically tuning window size.It's possible to get this to happen if you spam a lot of commands or text into the window in a short space of time. I can recreate this fairly reliably (and did so originally by accident) by setting the window size to 200x80 or so and running
top
References:
Teleport should respond to this message with a failure and allow PuTTY to work using its default configuration with no bugfixes/workarounds on the PuTTY side.
Current behavior: Teleport does not understand the message, reponds with
node doesn't support request type 'winadj@putty.projects.tartarus.org'
and ultimately closes the connection:This should be fixed in a similar way to #12372, although as it's expected that a failure message is sent in response (rather than simply ignoring the request) it might require a slightly different approach.
Bug details:
The text was updated successfully, but these errors were encountered: