Skip to content

fix(dashboard): gate jobs/user admin ops and redact users in snapshot - #14

Draft
cursor[bot] wants to merge 1 commit into
masterfrom
cursor/critical-bug-management-b713
Draft

fix(dashboard): gate jobs/user admin ops and redact users in snapshot#14
cursor[bot] wants to merge 1 commit into
masterfrom
cursor/critical-bug-management-b713

Conversation

@cursor

@cursor cursor Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Bug and impact

Multi-user dashboard deployments allowed any authenticated non-admin user to:

  1. Run kernel_exec verbs jobs / cron / automation and read global automation job instruction previews (may contain secrets).
  2. Run user list / user create to enumerate all memory owners or provision new owners.
  3. Receive the full CLI user list from GET /api/kernel (kernel_snapshot called terminal_list_users unfiltered).

This is separate from PR #13 (tasks/queue/config), which remains open.

Root cause

Session-scoped access controls added in #4 did not cover global kernel console verbs or the users field in kernel snapshots.

Fix

  • Reject jobs/cron/automation/user kernel_exec verbs for non-admin users before opening IPC.
  • Skip terminal_list_users for non-admin kernel_snapshot responses (return empty list).
  • Add regression tests in tests/test_dashboard_auth.py.

Validation

  • uv run pytest tests/test_dashboard_auth.py -v — 15 passed
Open in Web View Automation 

Non-admin dashboard users could run kernel_exec jobs/cron and user
list/create to read global automation instruction previews and enumerate
all memory owners. kernel_snapshot also returned the full CLI user list
via terminal_list_users without filtering.

Reject jobs/cron/automation and user verbs for non-admin before IPC,
skip the users IPC call for non-admin snapshots, and add regression tests.

Co-authored-by: Yuxuan Liu <Osc-7@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant