Skip to content

Fix file metadata escaping and bound key and SMB work - #216

Merged
bifrost0x merged 2 commits into
mainfrom
codex/security-scan-fixes
Sep 14, 2026
Merged

bifrost0x merged 2 commits into
mainfrom
codex/security-scan-fixes

Conversation

@bifrost0x

@bifrost0x bifrost0x commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Preserve remote filenames as literal text in file-workspace markup, apply a shared per-user budget to expensive key summaries, and require progress while enumerating SMB directory pages.

  • The shared filename encoder now handles both text and quoted attributes. Browser tests exercise the real renderer, accessible labels, sorting, and selection for SFTP and SMB; the misleading stronger test double is removed.
  • SSH_KEY_LIST_RATELIMIT defaults to 30 per minute across sockets and list/rename/replace/delete operations. Mutations reserve their refresh before changing storage. Successful acknowledgements, fresh usability checks, storage-error responses, and user isolation are preserved; there is no key cache or storage-format change.
  • SMB enumeration stays on the verified handle, preserves first-page/continuation flags and normal completion statuses, and bounds ignored special entries without reducing the ordinary-file member budget. Existing identity, ACL, encryption, and ownership checks remain in place.

Validation on final commit e6f00266811dc5c68dab92cf029c1cc8621fc7a9:

  • Python 3.14 CI: 2,863 passed, two skipped. The skips are an unrelated Windows-only case and the optional Redis case, which passed separately against Redis 7 and 8.
  • Python 3.11 compatibility gate: 560 passed.
  • Browser coverage: all 127 cases passed locally and in CI (64 + 63), including selection, key upload/rename/replace, transfer controls, mobile layouts, and terminal lifecycle.
  • All 43 JavaScript test files, JavaScript lint, vendored asset integrity, syntax checks, and diff checks passed.
  • Disposable SSH integration: 27 passed. Encrypted SMB integration, Redis 7/8, container threading smoke, dependency locks, CodeQL, and AMD64 image security passed.
  • Independent source review found one lost storage-error acknowledgement during refactoring; it was corrected and covered by a regression test. No other concrete bypass or compatibility regression was reported.

The initial full browser run exposed shared-account budget contention in two cases. Both passed on a fresh test instance; the browser-only server now has an explicit bounded 100-per-minute budget alongside its existing test login budget. Product defaults remain 30 per minute, and the shared per-user admission/side-effect contracts are tested directly. The full browser suite then passed without retries. Local Docker access was unavailable; live SMB validation was performed successfully in CI.

ARM64 image build/security and the combined image-security gate also passed. All applicable CI checks are green. Image publication is intentionally skipped for pull requests; no merge or deployment has been performed.

@bifrost0x
bifrost0x marked this pull request as ready for review September 14, 2026 10:46
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 14, 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-14T10:49:27.142116Z e6f0026 Draft marked ready
ℹ️ 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 merged commit 85d902b into main Sep 14, 2026
20 of 21 checks passed
@bifrost0x
bifrost0x deleted the codex/security-scan-fixes branch September 14, 2026 10:51
@github-project-automation github-project-automation Bot moved this from Backlog to Done in WebSSH Roadmap Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant