│ ◇ Doctor warnings ────────────────────────────────────────────────────────╮ │ │ │ - channels.telegram.groupPolicy is "allowlist" but groupAllowFrom (and │ │ allowFrom) is empty — all group messages will be silently dropped. │ │ Add sender IDs to channels.telegram.groupAllowFrom or │ │ channels.telegram.allowFrom, or set groupPolicy to "open". │ │ - channels.imessage.groupPolicy is "allowlist" but groupAllowFrom is │ │ empty — this channel does not fall back to allowFrom, so all group │ │ messages will be silently dropped. Add sender IDs to │ │ channels.imessage.groupAllowFrom, or set groupPolicy to "open". │ │ │ ├──────────────────────────────────────────────────────────────────────────╯ OpenClaw security audit Summary: 0 critical · 3 warn · 1 info Run deeper: openclaw security audit --deep WARN gateway.trusted_proxies_missing Reverse proxy headers are not trusted gateway.bind is loopback and gateway.trustedProxies is empty. If you expose the Control UI through a reverse proxy, configure trusted proxies so local-client checks cannot be spoofed. Fix: Set gateway.trustedProxies to your proxy IPs or keep the Control UI local-only. gateway.nodes.deny_commands_ineffective Some gateway.nodes.denyCommands entries are ineffective gateway.nodes.denyCommands uses exact node command-name matching only (for example `system.run`), not shell-text filtering inside a command payload. - Unknown command names (not in defaults/allowCommands): camera.snap, camera.clip, screen.record, calendar.add, contacts.add, reminders.add Fix: Use exact command names (for example: canvas.present, canvas.hide, canvas.navigate, canvas.eval, canvas.snapshot, canvas.a2ui.push, canvas.a2ui.pushJSONL, canvas.a2ui.reset). If you need broader restrictions, remove risky command IDs from allowCommands/default workflows and tighten tools.exec policy. security.trust_model.multi_user_heuristic Potential multi-user setup detected (personal-assistant model warning) Heuristic signals indicate this gateway may be reachable by multiple users: - channels.discord.groupPolicy="allowlist" with configured group targets Runtime/process tools are exposed without full sandboxing in at least one context. Potential high-impact tool exposure contexts: - agents.defaults (sandbox=off; runtime=[exec, process]; fs=[read, write, edit, apply_patch]; fs.workspaceOnly=false) OpenClaw's default security model is personal-assistant (one trusted operator boundary), not hostile multi-tenant isolation on one shared gateway. Fix: If users may be mutually untrusted, split trust boundaries (separate gateways + credentials, ideally separate OS users/hosts). If you intentionally run shared-user access, set agents.defaults.sandbox.mode="all", keep tools.fs.workspaceOnly=true, deny runtime/fs/web tools unless required, and keep personal/private identities + credentials off that runtime. INFO summary.attack_surface Attack surface summary groups: open=0, allowlist=3 tools.elevated: enabled hooks.webhooks: disabled hooks.internal: enabled browser control: enabled trust model: personal assistant (one trusted operator boundary), not hostile multi-tenant on one shared gateway