Skip to content

Harden SSH clipboard, key storage, and output flow - #199

Merged
bifrost0x merged 6 commits into
mainfrom
dev/fix-ssh-security-findings
Sep 4, 2026
Merged

Harden SSH clipboard, key storage, and output flow#199
bifrost0x merged 6 commits into
mainfrom
dev/fix-ssh-security-findings

Conversation

@bifrost0x

Copy link
Copy Markdown
Owner

Summary

  • require an explicit, localized user action before live persistent-tmux OSC 52 output can write to the browser clipboard
  • apply the SSH connection attempt limit before any stored target or jump-host key derivation/decryption while preserving missing-reference diagnostics
  • add atomic per-account SSH key count and encrypted-byte growth limits plus a pre-crypto key-write rate limit
  • replace unbounded room fan-out with per-browser acknowledged output delivery, per-socket/per-user/global byte and event budgets, Paramiko backpressure, and lagging-browser eviction

Compatibility

  • normal terminal copy/paste and Ctrl+C interrupt behavior are unchanged
  • replayed output and plain SSH sessions remain unable to request clipboard writes; persistent tmux copy remains available through one visible Copy action
  • existing over-limit key stores remain readable and can still be renamed, deleted, or replaced without growth
  • a stalled browser can be disconnected without closing its SSH or persistent tmux session, which remains available for reconnect
  • upload acknowledgements still contain a usable key summary without rescanning and decrypting the complete key store

Validation

  • 2365 passed, 29 skipped in the complete Python test suite
  • all 38 JavaScript test files passed
  • ESLint passed for static/js
  • Python and JavaScript syntax checks passed
  • focused Playwright browser E2E passed for replay-safe, user-approved tmux OSC 52 clipboard copy
  • independent post-patch security review found no remaining actionable findings
  • git diff --check origin/main passed

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 4, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-04T06:20:07.528159Z ec17548 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@bifrost0x bifrost0x self-assigned this Sep 4, 2026
@bifrost0x bifrost0x added enhancement New feature or request security labels Sep 4, 2026
@bifrost0x bifrost0x moved this from Backlog to In Progress in WebSSH Roadmap Sep 4, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fb829760a2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread app/ssh_output_flow.py
@bifrost0x

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c6016c1d93

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread static/js/terminal-manager.js
@bifrost0x

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 838538d7a1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread static/js/socket-reconnect-policy.js
@bifrost0x

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6eb9f5160d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread app/ssh_output_flow.py
@bifrost0x

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6edc8724f2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread app/ssh_output_flow.py Outdated
@bifrost0x

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

Reviewed commit: ec17548dd3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@bifrost0x
bifrost0x merged commit 94c5323 into main Sep 4, 2026
20 of 21 checks passed
@bifrost0x
bifrost0x deleted the dev/fix-ssh-security-findings branch September 4, 2026 06:28
@github-project-automation github-project-automation Bot moved this from In Progress to Done in WebSSH Roadmap Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request security

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant