Merged
Conversation
If a user sets `TELEPORT_SESSION` to a session ID that isn't running, the sent session ID is ignored and a new one is used to prevent the user controlling the value. When parsing a session ID the parsed result is used to ensure all session IDs will have the same format. `CreateSessionTracker` is updated to create instead of upsert to ensure `SessionTracker` resources cannot be overwritten by accident. Clients often need to know the current session ID, and before when they were in control of it that wasn't an issue. To fix this servers will send the current session ID in a SSH channel request on the channel the SSH session was created on. This should be fully backwards compatible, as when an unknown SSH request type is received clients will just ignore it/reply with false.
marcoandredinis
approved these changes
May 29, 2024
espadolini
approved these changes
May 29, 2024
Contributor
Author
|
cc @rosstimothy I had to modify the 'lib/web/terminal' package you recently added, just want to confirm the changes are acceptable |
rosstimothy
approved these changes
May 29, 2024
|
@capnspacehook See the table below for backport results.
|
This was referenced May 29, 2024
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.
If a user sets
TELEPORT_SESSIONto a session ID that isn't running, the sent session ID is ignored and a new one is used to prevent the user controlling the value. When parsing a session ID the parsed result is used to ensure all session IDs will have the same format.CreateSessionTrackeris updated to create instead of upsert to ensureSessionTrackerresources cannot be overwritten by accident.Clients often need to know the current session ID, and before when they were in control of it that wasn't an issue. To fix this servers will send the current session ID in a SSH channel request on the channel the SSH session was created on. This should be fully backwards compatible, as when an unknown SSH request type is received clients will just ignore it/reply with false.
The changes to
lib/web/terminal/terminal.gowere necessary to prevent race conditions now that latency websocket messages and session info websocket messages can be potentially sent at the same time.Fixes https://github.com/gravitational/teleport-private/issues/918.
changelog: fix session recordings getting overwritten or not uploaded