feat(security): audit open ingress control-plane tool exposure#100965
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 7, 2026, 10:53 AM ET / 14:53 UTC. Summary PR surface: Source +57, Tests +68, Docs +1. Total +126 across 3 files. Reproducibility: yes. at source level: current main's exposure-matrix collector lacks a gateway/cron control-plane check while the CLI consumes that collector. The PR body includes after-fix terminal output from the production collector path, but I did not run tests in this read-only review. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Land a rebased, maintainer-approved focused audit contract, or explicitly fold this control-plane check into the broader audit PR if security owners choose that as the canonical path. Do we have a high-confidence way to reproduce the issue? Yes, at source level: current main's exposure-matrix collector lacks a gateway/cron control-plane check while the CLI consumes that collector. The PR body includes after-fix terminal output from the production collector path, but I did not run tests in this read-only review. Is this the best way to solve the issue? Yes for the focused gap: extending the existing exposure matrix is the narrow owner-boundary fix for this diagnostic. The merge-ready solution still needs maintainer-confirmed check ID/scope and a rebase because the live PR is dirty. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 72ca911e3c33. Label changesLabel justifications:
Evidence reviewedPR surface: Source +57, Tests +68, Docs +1. Total +126 across 3 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (3 earlier review cycles)
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
d4b5abb to
a671c12
Compare
a671c12 to
dcfefa9
Compare
dcfefa9 to
9ddbd72
Compare
|
Merged via squash.
|
…law#100965) * fix(security): audit open control-plane exposure Co-authored-by: NIO <[email protected]> * chore: keep sweep changelog neutral --------- Co-authored-by: Peter Steinberger <[email protected]> Co-authored-by: NIO <[email protected]>
What Problem This Solves
gatewayandcronare persistent control-plane write surfaces:gatewaycan apply/patch live config (config.apply,config.patch,update.run)croncan create scheduled jobs that survive the originating chat/tasksrc/security/dangerous-tools.tsalready classifies both as high-risk / owner-only core tools, and public docs recommend denying them on untrusted surfaces. But the security audit had a visibility gap: existing exposure-matrix checks flagged elevated and runtime/filesystem tools on open ingress, not control-plane tools (gateway,cron).Risk: an operator can run
openclaw security audit, see exec/runtime warnings, and still miss that open group/DM ingress can reach agents withgatewayorcronenabled.Why This Change Was Made
Add a new exposure-matrix finding that mirrors the exec/runtime pattern:
listOpenInboundPolicies)gatewayand/orcronare allowed, emitsecurity.exposure.open_groups_with_control_plane_tools(critical)User Impact
openclaw security auditmay now report a new critical finding when open ingress and control-plane tools overlapEvidence
pnpm test src/security/audit-trust-model.test.ts node --import tsx scripts/proof-audit-control-plane-exposure.mjsReal behavior proof
gateway/cronwithout a dedicated security-audit finding.node --import tsx scripts/proof-audit-control-plane-exposure.mjspnpm test src/security/audit-trust-model.test.tstools.profile="coding"emits a critical control-plane finding namingcron; open DM with explicitgatewayallow is flagged; deny list suppresses the finding.openclaw security auditCLI against a live config file on disk; proof uses the production exposure-matrix collector directly.Checklist
agents.defaults+agents.list.*)AI-assisted disclosure