Skip to content

SSH session tokens never expire #22

@pimlock

Description

@pimlock

Summary

SSH session tokens are UUIDs generated when a client calls CreateSshSession. The token is stored with sandbox id, creation time, and a revoked flag. There is no expiry time or TTL. The only way to invalidate a token is to call RevokeSshSession, which sets revoked = true. If a token is stolen or leaked, it remains valid for SSH access to the sandbox until someone explicitly revokes it.

Source Code

  • Session creation in crates/navigator-server/src/grpc.rs in create_ssh_session (lines 576-628): a new UUID is generated (line 597), and an SshSession is built with revoked: false and no expiry field (lines 598-605), then persisted via store.put_message.
  • The proto and store model for SshSession include created_at_ms and revoked but no expires_at or similar. Revocation is in revoke_ssh_session (lines 689-716).

Originally by @drew on 2026-02-19T08:59:15.075-08:00

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions