Limit paired-device pairing actions to the caller device#69375
Conversation
Greptile SummaryThis PR closes two lateral-movement gaps in the paired-device authorization model: non-admin device sessions can no longer see or act on other devices' pairing requests. Confidence Score: 5/5Safe to merge — the new guards are correctly scoped, the scope-ceiling check in approveDevicePairing still applies after the ownership check, and the TOCTOU window is benign (handled by the existing !approved path). All findings are P2 or observational. The authorization logic is sound, device IDs are cryptographically verified at handshake time, and the test coverage spans unit tests for all new branches plus integration tests for the key attack scenarios. No files require special attention. Reviews (3): Last reviewed commit: "fix(pairing): close device authz review ..." | Re-trigger Greptile |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 55391acdf7
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
|
@codex review |
|
@greptile review |
|
Codex Review: Didn't find any major issues. 👍 ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
4575c1b to
958887c
Compare
958887c to
7cf4f19
Compare
) * fix(pairing): restrict paired-device pairing actions * fix(pairing): close device authz review gaps * docs(changelog): note device-pair scoping for non-admin paired devices (openclaw#69375) --------- Co-authored-by: Devin Robison <drobison@nvidia.com>
) * fix(pairing): restrict paired-device pairing actions * fix(pairing): close device authz review gaps * docs(changelog): note device-pair scoping for non-admin paired devices (openclaw#69375) --------- Co-authored-by: Devin Robison <drobison@nvidia.com>
) * fix(pairing): restrict paired-device pairing actions * fix(pairing): close device authz review gaps * docs(changelog): note device-pair scoping for non-admin paired devices (openclaw#69375) --------- Co-authored-by: Devin Robison <drobison@nvidia.com>
) * fix(pairing): restrict paired-device pairing actions * fix(pairing): close device authz review gaps * docs(changelog): note device-pair scoping for non-admin paired devices (openclaw#69375) --------- Co-authored-by: Devin Robison <drobison@nvidia.com>
) * fix(pairing): restrict paired-device pairing actions * fix(pairing): close device authz review gaps * docs(changelog): note device-pair scoping for non-admin paired devices (openclaw#69375) --------- Co-authored-by: Devin Robison <drobison@nvidia.com>
) * fix(pairing): restrict paired-device pairing actions * fix(pairing): close device authz review gaps * docs(changelog): note device-pair scoping for non-admin paired devices (openclaw#69375) --------- Co-authored-by: Devin Robison <drobison@nvidia.com>
) * fix(pairing): restrict paired-device pairing actions * fix(pairing): close device authz review gaps * docs(changelog): note device-pair scoping for non-admin paired devices (openclaw#69375) --------- Co-authored-by: Devin Robison <drobison@nvidia.com>
Summary
Changes
device.pair.listresults to the connected device when the caller is a non-admin paired-device sessiondevice.pair.approverequests from non-admin paired-device sessions before approval is appliedValidation
corepack pnpm test src/gateway/server-methods/devices.test.ts src/gateway/server.device-pair-approve-authz.test.tscorepack pnpm check:changedclaude -p "/review", but it timed out twice without returning output in this environmentNotes