Documentation Index
Fetch the complete documentation index at: https://openclaw.zhcndoc.com/llms.txt
Use this file to discover all available pages before exploring further.
openclaw security audit 会发出以 checkId 为键的结构化发现项。此
页面是这些 ID 的参考目录。关于高层威胁模型
和加固指导,请参见 Security。
你最可能在真实部署中看到的高信号 checkId 值(非穷尽):
checkId | 严重性 | 重要原因 | 主要修复 key/path | 自动修复 |
|---|---|---|---|---|
fs.state_dir.perms_world_writable | critical | 其他用户/进程可以修改完整的 OpenClaw 状态 | ~/.openclaw 上的文件系统权限 | yes |
fs.state_dir.perms_group_writable | warn | 组内用户可以修改完整的 OpenClaw 状态 | ~/.openclaw 上的文件系统权限 | yes |
fs.state_dir.perms_readable | warn | 状态目录可被他人读取 | ~/.openclaw 上的文件系统权限 | yes |
fs.state_dir.symlink | warn | 状态目录目标会变成另一个信任边界 | 状态目录文件系统布局 | no |
fs.config.perms_writable | critical | 他人可以更改认证/工具策略/配置 | ~/.openclaw/openclaw.json 上的文件系统权限 | yes |
fs.config.symlink | warn | 通过符号链接的配置文件不支持写入,并会增加另一个信任边界 | 替换为普通配置文件,或将 OPENCLAW_CONFIG_PATH 指向真实文件 | no |
fs.config.perms_group_readable | warn | 组内用户可以读取配置令牌/设置 | 配置文件上的文件系统权限 | yes |
fs.config.perms_world_readable | critical | 配置可能泄露令牌/设置 | 配置文件上的文件系统权限 | yes |
fs.config_include.perms_writable | critical | 其他人可以修改配置包含文件 | openclaw.json 引用的 include 文件权限 | yes |
fs.config_include.perms_group_readable | warn | 组内用户可以读取包含的秘密/设置 | openclaw.json 引用的 include 文件权限 | yes |
fs.config_include.perms_world_readable | critical | 包含的秘密/设置对所有人可读 | openclaw.json 引用的 include 文件权限 | yes |
fs.auth_profiles.perms_writable | critical | 其他人可以注入或替换已存储的模型凭据 | agents/<agentId>/agent/auth-profiles.json 的权限 | yes |
fs.auth_profiles.perms_readable | warn | 其他人可以读取 API 密钥和 OAuth 令牌 | agents/<agentId>/agent/auth-profiles.json 的权限 | yes |
fs.credentials_dir.perms_writable | critical | 其他人可以修改通道配对/凭据状态 | ~/.openclaw/credentials 上的文件系统权限 | yes |
fs.credentials_dir.perms_readable | warn | 其他人可以读取通道凭据状态 | ~/.openclaw/credentials 上的文件系统权限 | yes |
fs.sessions_store.perms_readable | warn | 其他人可以读取会话转录/元数据 | 会话存储权限 | yes |
fs.log_file.perms_readable | warn | 其他人可以读取已脱敏但仍敏感的日志 | 网关日志文件权限 | yes |
fs.synced_dir | warn | iCloud/Dropbox/Drive 中的状态/配置会扩大令牌/转录暴露 | 将配置/状态移出同步文件夹 | no |
gateway.bind_no_auth | critical | 远程绑定且没有共享密钥 | gateway.bind, gateway.auth.* | no |
gateway.loopback_no_auth | critical | 反向代理的 loopback 可能变成未经认证 | gateway.auth.*, 代理设置 | no |
gateway.trusted_proxies_missing | warn | 反向代理头已存在,但未被信任 | gateway.trustedProxies | no |
gateway.http.no_auth | warn/critical | 当 auth.mode="none" 时,网关 HTTP API 可被访问 | gateway.auth.mode, gateway.http.endpoints.* | no |
gateway.http.session_key_override_enabled | info | HTTP API 调用者可以覆盖 sessionKey | gateway.http.allowSessionKeyOverride | no |
gateway.tools_invoke_http.dangerous_allow | warn/critical | 通过 HTTP API 重新启用危险工具 | gateway.tools.allow | no |
gateway.nodes.allow_commands_dangerous | warn/critical | 启用高影响节点命令(摄像头/屏幕/联系人/日历/SMS) | gateway.nodes.allowCommands | no |
gateway.nodes.deny_commands_ineffective | warn | 类似模式的拒绝项并不匹配 shell 文本或组 | gateway.nodes.denyCommands | no |
gateway.tailscale_funnel | critical | 暴露到公共互联网 | gateway.tailscale.mode | no |
gateway.tailscale_serve | info | 已通过 Serve 启用 tailnet 暴露 | gateway.tailscale.mode | no |
gateway.control_ui.allowed_origins_required | critical | 非 loopback 的 Control UI 没有显式的浏览器来源允许列表 | gateway.controlUi.allowedOrigins | no |
gateway.control_ui.allowed_origins_wildcard | warn/critical | allowedOrigins=["*"] 会禁用浏览器来源允许列表 | gateway.controlUi.allowedOrigins | no |
gateway.control_ui.host_header_origin_fallback | warn/critical | 启用 Host-header 来源回退(DNS rebinding 加固降级) | gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback | no |
gateway.control_ui.insecure_auth | warn | 启用了 insecure-auth 兼容性开关 | gateway.controlUi.allowInsecureAuth | no |
gateway.control_ui.device_auth_disabled | critical | 禁用设备身份检查 | gateway.controlUi.dangerouslyDisableDeviceAuth | no |
gateway.real_ip_fallback_enabled | warn/critical | 信任 X-Real-IP 回退可能通过代理误配置启用源 IP 欺骗 | gateway.allowRealIpFallback, gateway.trustedProxies | no |
gateway.token_too_short | warn | 较短的共享令牌更容易被暴力破解 | gateway.auth.token | no |
gateway.auth_no_rate_limit | warn | 暴露的认证没有速率限制会增加暴力破解风险 | gateway.auth.rateLimit | no |
gateway.trusted_proxy_auth | critical | 代理身份现在成为认证边界 | gateway.auth.mode="trusted-proxy" | no |
gateway.trusted_proxy_no_proxies | critical | 没有受信任代理 IP 的 trusted-proxy 认证是不安全的 | gateway.trustedProxies | no |
gateway.trusted_proxy_no_user_header | critical | trusted-proxy 认证无法安全解析用户身份 | gateway.auth.trustedProxy.userHeader | no |
gateway.trusted_proxy_no_allowlist | warn | trusted-proxy 认证接受任何已认证的上游用户 | gateway.auth.trustedProxy.allowUsers | no |
gateway.trusted_proxy_allow_loopback | warn | trusted-proxy 认证接受显式允许的 loopback 代理来源 | gateway.auth.trustedProxy.allowLoopback | no |
gateway.probe_auth_secretref_unavailable | warn | 深度探测无法在此命令路径中解析 auth SecretRef | 深度探测 auth 来源 / SecretRef 可用性 | no |
gateway.probe_failed | warn/critical | 实时 Gateway 探测失败 | gateway 可达性/认证 | no |
discovery.mdns_full_mode | warn/critical | mDNS full mode 会在本地网络上公开 cliPath/sshPort 元数据 | discovery.mdns.mode, gateway.bind | no |
config.insecure_or_dangerous_flags | warn | 启用了任何不安全/危险的调试标志 | 多个 key(见发现详情) | no |
config.secrets.gateway_password_in_config | warn | Gateway 密码直接存储在配置中 | gateway.auth.password | no |
config.secrets.hooks_token_in_config | warn | Hook bearer token 直接存储在配置中 | hooks.token | no |
hooks.token_reuse_gateway_token | critical | Hook 入口 token 也会解锁 Gateway 认证 | hooks.token, gateway.auth.token | no |
hooks.token_too_short | warn | Hook 入口更容易被暴力破解 | hooks.token | no |
hooks.default_session_key_unset | warn | Hook agent 运行会分散到每次请求生成的会话中 | hooks.defaultSessionKey | no |
hooks.allowed_agent_ids_unrestricted | warn/critical | 已认证的 hook 调用者可能路由到任意已配置 agent | hooks.allowedAgentIds | no |
hooks.request_session_key_enabled | warn/critical | 外部调用者可以选择 sessionKey | hooks.allowRequestSessionKey | no |
hooks.request_session_key_prefixes_missing | warn/critical | 对外部 session key 形状没有限制 | hooks.allowedSessionKeyPrefixes | no |
hooks.path_root | critical | Hook 路径是 /,更容易发生入口冲突或路由错误 | hooks.path | no |
hooks.installs_unpinned_npm_specs | warn | Hook 安装记录没有固定到不可变的 npm 规格 | hook 安装元数据 | no |
hooks.installs_missing_integrity | warn | Hook 安装记录缺少完整性元数据 | hook 安装元数据 | no |
hooks.installs_version_drift | warn | Hook 安装记录与已安装包存在漂移 | hook 安装元数据 | no |
logging.redact_off | warn | 敏感值会泄露到日志/状态 | logging.redactSensitive | yes |
browser.control_invalid_config | warn | Browser control 配置在运行前无效 | browser.* | no |
browser.control_no_auth | critical | Browser control 在没有 token/password 认证的情况下暴露 | gateway.auth.* | no |
browser.remote_cdp_http | warn | 通过明文 HTTP 的远程 CDP 缺少传输加密 | 浏览器配置文件 cdpUrl | no |
browser.remote_cdp_private_host | warn | 远程 CDP 指向私有/内部主机 | 浏览器配置文件 cdpUrl, browser.ssrfPolicy.* | no |
sandbox.docker_config_mode_off | warn | Sandbox Docker 配置存在但未启用 | agents.*.sandbox.mode | no |
sandbox.bind_mount_non_absolute | warn | 相对 bind mount 可能以不可预测方式解析 | agents.*.sandbox.docker.binds[] | no |
sandbox.dangerous_bind_mount | critical | Sandbox bind mount 目标指向被阻止的系统、凭据或 Docker socket 路径 | agents.*.sandbox.docker.binds[] | no |
sandbox.dangerous_network_mode | critical | Sandbox Docker network 使用 host 或 container:* 命名空间加入模式 | agents.*.sandbox.docker.network | no |
sandbox.dangerous_seccomp_profile | critical | Sandbox seccomp profile 会削弱容器隔离 | agents.*.sandbox.docker.securityOpt | no |
sandbox.dangerous_apparmor_profile | critical | Sandbox AppArmor profile 会削弱容器隔离 | agents.*.sandbox.docker.securityOpt | no |
sandbox.browser_cdp_bridge_unrestricted | warn | Sandbox browser bridge 未限制来源范围就暴露 | sandbox.browser.cdpSourceRange | no |
sandbox.browser_container.non_loopback_publish | critical | 现有 browser container 在非 loopback 接口上发布 CDP | browser sandbox container 发布配置 | no |
sandbox.browser_container.hash_label_missing | warn | 现有 browser container 早于当前配置哈希标签 | openclaw sandbox recreate --browser --all | no |
sandbox.browser_container.hash_epoch_stale | warn | 现有 browser container 早于当前 browser 配置 epoch | openclaw sandbox recreate --browser --all | no |
tools.exec.host_sandbox_no_sandbox_defaults | warn | 当 sandbox 关闭时,exec host=sandbox 会安全失败闭合 | tools.exec.host, agents.defaults.sandbox.mode | no |
tools.exec.host_sandbox_no_sandbox_agents | warn | 每个 agent 的 exec host=sandbox 会在 sandbox 关闭时安全失败闭合 | agents.list[].tools.exec.host, agents.list[].sandbox.mode | no |
tools.exec.security_full_configured | warn/critical | Host exec 正在以 security="full" 运行 | tools.exec.security, agents.list[].tools.exec.security | no |
tools.exec.auto_allow_skills_enabled | warn | Exec 审批会隐式信任 skill bin | ~/.openclaw/exec-approvals.json | no |
tools.exec.allowlist_interpreter_without_strict_inline_eval | warn | Interpreter allowlist 允许 inline eval,而没有强制重新审批 | tools.exec.strictInlineEval, agents.list[].tools.exec.strictInlineEval, exec approvals allowlist | no |
tools.exec.safe_bins_interpreter_unprofiled | warn | safeBins 中的 interpreter/runtime bin 没有显式 profile,会扩大 exec 风险 | tools.exec.safeBins, tools.exec.safeBinProfiles, agents.list[].tools.exec.* | no |
tools.exec.safe_bins_broad_behavior | warn | safeBins 中行为宽泛的工具会削弱低风险 stdin-filter 信任模型 | tools.exec.safeBins, agents.list[].tools.exec.safeBins | no |
tools.exec.safe_bin_trusted_dirs_risky | warn | safeBinTrustedDirs 包含可变或有风险的目录 | tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs | no |
skills.workspace.symlink_escape | warn | Workspace skills/**/SKILL.md 解析到了 workspace 根目录之外(符号链接链漂移) | workspace skills/** 文件系统状态 | no |
plugins.extensions_no_allowlist | warn | 安装插件时没有显式的插件允许列表 | plugins.allowlist | no |
plugins.installs_unpinned_npm_specs | warn | 插件索引记录没有固定到不可变的 npm 规格 | plugin 安装元数据 | no |
plugins.installs_missing_integrity | warn | 插件索引记录缺少完整性元数据 | plugin 安装元数据 | no |
plugins.installs_version_drift | warn | 插件索引记录与已安装包存在漂移 | plugin 安装元数据 | no |
plugins.code_safety | warn/critical | 插件代码扫描发现可疑或危险模式 | plugin 代码 / 安装来源 | no |
plugins.code_safety.entry_path | warn | 插件入口路径指向隐藏目录或 node_modules 位置 | plugin manifest entry | no |
plugins.code_safety.entry_escape | critical | 插件入口逃逸出了插件目录 | plugin manifest entry | no |
plugins.code_safety.scan_failed | warn | 插件代码扫描无法完成 | plugin 路径 / 扫描环境 | no |
skills.code_safety | warn/critical | skill 安装器元数据/代码包含可疑或危险模式 | skill 安装来源 | no |
skills.code_safety.scan_failed | warn | skill 代码扫描无法完成 | skill 扫描环境 | no |
security.exposure.open_channels_with_exec | warn/critical | 共享/公共房间可以访问启用了 exec 的 agent | channels.*.dmPolicy, channels.*.groupPolicy, tools.exec.*, agents.list[].tools.exec.* | no |
security.exposure.open_groups_with_elevated | critical | 开放组 + 提权工具会创建高影响的 prompt-injection 路径 | channels.*.groupPolicy, tools.elevated.* | no |
security.exposure.open_groups_with_runtime_or_fs | critical/warn | 开放组可以在没有 sandbox/workspace 保护的情况下访问命令/文件工具 | channels.*.groupPolicy, tools.profile/deny, tools.fs.workspaceOnly, agents.*.sandbox.mode | no |
security.trust_model.multi_user_heuristic | warn | 配置看起来像多用户,而网关信任模型却是个人助手 | 分离信任边界,或进行共享用户加固(sandbox.mode, 工具 deny/workspace 作用域) | no |
tools.profile_minimal_overridden | warn | agent 覆盖绕过了全局 minimal profile | agents.list[].tools.profile | no |
plugins.tools_reachable_permissive_policy | warn | 扩展工具在宽松上下文中可达 | tools.profile + 工具 allow/deny | no |
models.legacy | warn | 仍然配置了旧版模型族 | 模型选择 | no |
models.weak_tier | warn | 已配置模型低于当前推荐等级 | 模型选择 | no |
models.small_params | critical/info | 小模型 + 不安全工具面会增加注入风险 | 模型选择 + sandbox/工具策略 | no |
summary.attack_surface | info | 对认证、通道、工具和暴露态势的汇总 | 多个 key(见发现详情) | no |