fs.state_dir.perms_world_writable | critical | D’autres utilisateurs/processus peuvent modifier l’intégralité de l’état OpenClaw | permissions du système de fichiers sur ~/.openclaw | yes |
fs.state_dir.perms_group_writable | warn | Les utilisateurs du groupe peuvent modifier l’intégralité de l’état OpenClaw | permissions du système de fichiers sur ~/.openclaw | yes |
fs.state_dir.perms_readable | warn | Le répertoire d’état est lisible par d’autres | permissions du système de fichiers sur ~/.openclaw | yes |
fs.state_dir.symlink | warn | La cible du répertoire d’état devient une autre frontière de confiance | disposition du système de fichiers du répertoire d’état | no |
fs.config.perms_writable | critical | D’autres peuvent modifier la politique d’authentification/des outils/la configuration | permissions du système de fichiers sur ~/.openclaw/openclaw.json | yes |
fs.config.symlink | warn | Les fichiers de configuration liés par lien symbolique ne sont pas pris en charge pour l’écriture et ajoutent une autre frontière de confiance | remplacez par un fichier de configuration normal ou pointez OPENCLAW_CONFIG_PATH vers le vrai fichier | no |
fs.config.perms_group_readable | warn | Les utilisateurs du groupe peuvent lire les jetons/paramètres de configuration | permissions du système de fichiers sur le fichier de configuration | yes |
fs.config.perms_world_readable | critical | La configuration peut exposer des jetons/paramètres | permissions du système de fichiers sur le fichier de configuration | yes |
fs.config_include.perms_writable | critical | Le fichier include de configuration peut être modifié par d’autres | permissions du fichier include référencé depuis openclaw.json | yes |
fs.config_include.perms_group_readable | warn | Les utilisateurs du groupe peuvent lire les secrets/paramètres inclus | permissions du fichier include référencé depuis openclaw.json | yes |
fs.config_include.perms_world_readable | critical | Les secrets/paramètres inclus sont lisibles par tous | permissions du fichier include référencé depuis openclaw.json | yes |
fs.auth_profiles.perms_writable | critical | D’autres peuvent injecter ou remplacer les identifiants de modèle stockés | permissions de agents/<agentId>/agent/auth-profiles.json | yes |
fs.auth_profiles.perms_readable | warn | D’autres peuvent lire les clés API et jetons OAuth | permissions de agents/<agentId>/agent/auth-profiles.json | yes |
fs.credentials_dir.perms_writable | critical | D’autres peuvent modifier l’état d’appairage/d’identifiants des canaux | permissions du système de fichiers sur ~/.openclaw/credentials | yes |
fs.credentials_dir.perms_readable | warn | D’autres peuvent lire l’état des identifiants des canaux | permissions du système de fichiers sur ~/.openclaw/credentials | yes |
fs.sessions_store.perms_readable | warn | D’autres peuvent lire les transcriptions/métadonnées de session | permissions du stockage des sessions | yes |
fs.log_file.perms_readable | warn | D’autres peuvent lire des journaux expurgés mais toujours sensibles | permissions du fichier journal de la Gateway | yes |
fs.synced_dir | warn | L’état/la configuration dans iCloud/Dropbox/Drive élargit l’exposition des jetons/transcriptions | déplacez la configuration/l’état hors des dossiers synchronisés | no |
gateway.bind_no_auth | critical | Liaison distante sans secret partagé | gateway.bind, gateway.auth.* | no |
gateway.loopback_no_auth | critical | Le loopback via proxy inverse peut devenir non authentifié | gateway.auth.*, configuration du proxy | no |
gateway.trusted_proxies_missing | warn | Les en-têtes de proxy inverse sont présents mais non approuvés | gateway.trustedProxies | no |
gateway.http.no_auth | warn/critical | Les API HTTP de la Gateway sont accessibles avec auth.mode="none" | gateway.auth.mode, gateway.http.endpoints.* | no |
gateway.http.session_key_override_enabled | info | Les appelants de l’API HTTP peuvent remplacer sessionKey | gateway.http.allowSessionKeyOverride | no |
gateway.tools_invoke_http.dangerous_allow | warn/critical | Réactive des outils dangereux via l’API HTTP | gateway.tools.allow | no |
gateway.nodes.allow_commands_dangerous | warn/critical | Active des commandes Node à fort impact (caméra/écran/contacts/calendrier/SMS) | gateway.nodes.allowCommands | no |
gateway.nodes.deny_commands_ineffective | warn | Les entrées deny de type motif ne correspondent pas au texte shell ni aux groupes | gateway.nodes.denyCommands | no |
gateway.tailscale_funnel | critical | Exposition à l’internet public | gateway.tailscale.mode | no |
gateway.tailscale_serve | info | L’exposition Tailnet est activée via Serve | gateway.tailscale.mode | no |
gateway.control_ui.allowed_origins_required | critical | Control UI non loopback sans liste d’autorisation explicite des origines navigateur | gateway.controlUi.allowedOrigins | no |
gateway.control_ui.allowed_origins_wildcard | warn/critical | allowedOrigins=["*"] désactive la liste d’autorisation des origines navigateur | gateway.controlUi.allowedOrigins | no |
gateway.control_ui.host_header_origin_fallback | warn/critical | Active le repli d’origine via l’en-tête Host (dégradation du durcissement contre le rebinding DNS) | gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback | no |
gateway.control_ui.insecure_auth | warn | Le basculement de compatibilité d’authentification non sécurisée est activé | gateway.controlUi.allowInsecureAuth | no |
gateway.control_ui.device_auth_disabled | critical | Désactive la vérification de l’identité de l’appareil | gateway.controlUi.dangerouslyDisableDeviceAuth | no |
gateway.real_ip_fallback_enabled | warn/critical | Faire confiance au repli X-Real-IP peut permettre l’usurpation d’IP source via une mauvaise configuration du proxy | gateway.allowRealIpFallback, gateway.trustedProxies | no |
gateway.token_too_short | warn | Un jeton partagé court est plus facile à forcer par brute force | gateway.auth.token | no |
gateway.auth_no_rate_limit | warn | Une authentification exposée sans limitation de débit augmente le risque de brute force | gateway.auth.rateLimit | no |
gateway.trusted_proxy_auth | critical | L’identité du proxy devient désormais la frontière d’authentification | gateway.auth.mode="trusted-proxy" | no |
gateway.trusted_proxy_no_proxies | critical | L’authentification par proxy approuvé sans IP de proxy approuvées n’est pas sûre | gateway.trustedProxies | no |
gateway.trusted_proxy_no_user_header | critical | L’authentification par proxy approuvé ne peut pas résoudre l’identité utilisateur en toute sécurité | gateway.auth.trustedProxy.userHeader | no |
gateway.trusted_proxy_no_allowlist | warn | L’authentification par proxy approuvé accepte n’importe quel utilisateur amont authentifié | gateway.auth.trustedProxy.allowUsers | no |
checkId | Gravité | Pourquoi c’est important | Clé/chemin de correction principal | Correction automatique |
| ------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | ---------------------- |
gateway.probe_auth_secretref_unavailable | warn | La sonde approfondie n’a pas pu résoudre les SecretRefs d’authentification dans ce chemin de commande | source d’authentification de la sonde approfondie / disponibilité des SecretRef | no |
gateway.probe_failed | warn/critical | La sonde Gateway en direct a échoué | accessibilité/authentification de la Gateway | no |
discovery.mdns_full_mode | warn/critical | Le mode complet mDNS annonce les métadonnées cliPath/sshPort sur le réseau local | discovery.mdns.mode, gateway.bind | no |
config.insecure_or_dangerous_flags | warn | Des indicateurs de débogage non sécurisés/dangereux sont activés | plusieurs clés (voir le détail du résultat) | no |
config.secrets.gateway_password_in_config | warn | Le mot de passe Gateway est stocké directement dans la configuration | gateway.auth.password | no |
config.secrets.hooks_token_in_config | warn | Le jeton bearer des hooks est stocké directement dans la configuration | hooks.token | no |
hooks.token_reuse_gateway_token | critical | Le jeton d’entrée des hooks déverrouille aussi l’authentification de la Gateway | hooks.token, gateway.auth.token | no |
hooks.token_too_short | warn | Force brute plus facile sur l’entrée des hooks | hooks.token | no |
hooks.default_session_key_unset | warn | Les exécutions d’agent hook se répartissent dans des sessions générées par requête | hooks.defaultSessionKey | no |
hooks.allowed_agent_ids_unrestricted | warn/critical | Les appelants de hooks authentifiés peuvent router vers n’importe quel agent configuré | hooks.allowedAgentIds | no |
hooks.request_session_key_enabled | warn/critical | Un appelant externe peut choisir sessionKey | hooks.allowRequestSessionKey | no |
hooks.request_session_key_prefixes_missing | warn/critical | Aucune borne sur les formes de clés de session externes | hooks.allowedSessionKeyPrefixes | no |
hooks.path_root | critical | Le chemin des hooks est /, ce qui facilite les collisions ou erreurs de routage en entrée | hooks.path | no |
hooks.installs_unpinned_npm_specs | warn | Les enregistrements d’installation de hooks ne sont pas épinglés à des spécifications npm immuables | métadonnées d’installation des hooks | no |
hooks.installs_missing_integrity | warn | Les enregistrements d’installation de hooks n’ont pas de métadonnées d’intégrité | métadonnées d’installation des hooks | no |
hooks.installs_version_drift | warn | Les enregistrements d’installation de hooks dérivent des packages installés | métadonnées d’installation des hooks | no |
logging.redact_off | warn | Des valeurs sensibles fuient dans les journaux/le statut | logging.redactSensitive | yes |
browser.control_invalid_config | warn | La configuration du contrôle browser est invalide avant le runtime | browser.* | no |
browser.control_no_auth | critical | Le contrôle browser est exposé sans authentification par jeton/mot de passe | gateway.auth.* | no |
browser.remote_cdp_http | warn | Le CDP distant en HTTP simple n’a pas de chiffrement de transport | profil browser cdpUrl | no |
browser.remote_cdp_private_host | warn | Le CDP distant cible un hôte privé/interne | profil browser cdpUrl, browser.ssrfPolicy.* | no |
sandbox.docker_config_mode_off | warn | La configuration Docker du sandbox est présente mais inactive | agents.*.sandbox.mode | no |
sandbox.bind_mount_non_absolute | warn | Les bind mounts relatifs peuvent se résoudre de manière imprévisible | agents.*.sandbox.docker.binds[] | no |
sandbox.dangerous_bind_mount | critical | Les cibles de bind mount du sandbox pointent vers des chemins système, identifiants ou socket Docker bloqués | agents.*.sandbox.docker.binds[] | no |
sandbox.dangerous_network_mode | critical | Le réseau Docker du sandbox utilise le mode host ou le mode de jointure d’espace de noms container:* | agents.*.sandbox.docker.network | no |
sandbox.dangerous_seccomp_profile | critical | Le profil seccomp du sandbox affaiblit l’isolation du conteneur | agents.*.sandbox.docker.securityOpt | no |
sandbox.dangerous_apparmor_profile | critical | Le profil AppArmor du sandbox affaiblit l’isolation du conteneur | agents.*.sandbox.docker.securityOpt | no |
sandbox.browser_cdp_bridge_unrestricted | warn | Le pont browser du sandbox est exposé sans restriction de plage source | sandbox.browser.cdpSourceRange | no |
sandbox.browser_container.non_loopback_publish | critical | Le conteneur browser existant publie CDP sur des interfaces non loopback | configuration de publication du conteneur sandbox browser | no |
sandbox.browser_container.hash_label_missing | warn | Le conteneur browser existant est antérieur aux labels actuels de hash de configuration | openclaw sandbox recreate --browser --all | no |
sandbox.browser_container.hash_epoch_stale | warn | Le conteneur browser existant est antérieur à l’époque actuelle de configuration browser | openclaw sandbox recreate --browser --all | no |
tools.exec.host_sandbox_no_sandbox_defaults | warn | exec host=sandbox échoue en mode fermé lorsque le sandbox est désactivé | tools.exec.host, agents.defaults.sandbox.mode | no |
tools.exec.host_sandbox_no_sandbox_agents | warn | exec host=sandbox par agent échoue en mode fermé lorsque le sandbox est désactivé | agents.list[].tools.exec.host, agents.list[].sandbox.mode | no |
tools.exec.security_full_configured | warn/critical | L’exécution hôte fonctionne avec security="full" | tools.exec.security, agents.list[].tools.exec.security | no |
tools.exec.auto_allow_skills_enabled | warn | Les approbations exec font implicitement confiance aux binaires de Skills | ~/.openclaw/exec-approvals.json | no |
tools.exec.allowlist_interpreter_without_strict_inline_eval | warn | Les listes d’autorisation d’interpréteurs permettent l’évaluation inline sans réapprobation forcée | tools.exec.strictInlineEval, agents.list[].tools.exec.strictInlineEval, liste d’autorisation des approbations exec | no |
tools.exec.safe_bins_interpreter_unprofiled | warn | Des binaires d’interpréteur/runtime dans safeBins sans profils explicites élargissent le risque exec | tools.exec.safeBins, tools.exec.safeBinProfiles, agents.list[].tools.exec.* | no |
tools.exec.safe_bins_broad_behavior | warn | Des outils à comportement large dans safeBins affaiblissent le modèle de confiance stdin à faible risque | tools.exec.safeBins, agents.list[].tools.exec.safeBins | no |
tools.exec.safe_bin_trusted_dirs_risky | warn | safeBinTrustedDirs inclut des répertoires mutables ou risqués | tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs | no |
skills.workspace.symlink_escape | warn | skills/**/SKILL.md de l’espace de travail se résout hors de la racine de l’espace de travail (dérive de chaîne de liens symboliques) | état du système de fichiers de l’espace de travail skills/** | no |
plugins.extensions_no_allowlist | warn | Les plugins sont installés sans liste d’autorisation explicite | plugins.allowlist | no |
plugins.installs_unpinned_npm_specs | warn | Les enregistrements d’installation de plugins ne sont pas épinglés à des spécifications npm immuables | métadonnées d’installation des plugins | no |
checkId | Gravité | Pourquoi c’est important | Clé/chemin de correction principal | Correction automatique |
| ------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | ---------------------- |
plugins.installs_missing_integrity | warn | Les enregistrements d’installation de plugins n’ont pas de métadonnées d’intégrité | métadonnées d’installation des plugins | no |
plugins.installs_version_drift | warn | Les enregistrements d’installation de plugins dérivent des packages installés | métadonnées d’installation des plugins | no |
plugins.code_safety | warn/critical | Le scan du code du plugin a trouvé des motifs suspects ou dangereux | code du plugin / source d’installation | no |
plugins.code_safety.entry_path | warn | Le chemin d’entrée du plugin pointe vers des emplacements cachés ou node_modules | manifeste du plugin entry | no |
plugins.code_safety.entry_escape | critical | L’entrée du plugin sort du répertoire du plugin | manifeste du plugin entry | no |
plugins.code_safety.scan_failed | warn | Le scan du code du plugin n’a pas pu se terminer | chemin du plugin / environnement de scan | no |
skills.code_safety | warn/critical | Les métadonnées/le code de l’installateur de Skills contiennent des motifs suspects ou dangereux | source d’installation de Skills | no |
skills.code_safety.scan_failed | warn | Le scan du code de Skills n’a pas pu se terminer | environnement de scan de Skills | no |
security.exposure.open_channels_with_exec | warn/critical | Les salons partagés/publics peuvent atteindre des agents avec exec activé | channels.*.dmPolicy, channels.*.groupPolicy, tools.exec.*, agents.list[].tools.exec.* | no |
security.exposure.open_groups_with_elevated | critical | Les groupes ouverts + outils élevés créent des chemins d’injection de prompt à fort impact | channels.*.groupPolicy, tools.elevated.* | no |
security.exposure.open_groups_with_runtime_or_fs | critical/warn | Les groupes ouverts peuvent atteindre des outils de commande/fichier sans garde-fous de sandbox/espace de travail | channels.*.groupPolicy, tools.profile/deny, tools.fs.workspaceOnly, agents.*.sandbox.mode | no |
security.trust_model.multi_user_heuristic | warn | La configuration semble multi-utilisateur alors que le modèle de confiance de la Gateway est celui d’un assistant personnel | séparer les frontières de confiance, ou renforcer pour les utilisateurs partagés (sandbox.mode, deny d’outils/portée de l’espace de travail) | no |
tools.profile_minimal_overridden | warn | Les remplacements d’agent contournent le profil minimal global | agents.list[].tools.profile | no |
plugins.tools_reachable_permissive_policy | warn | Les outils d’extension sont accessibles dans des contextes permissifs | tools.profile + autorisation/refus des outils | no |
models.legacy | warn | Des familles de modèles héritées sont encore configurées | sélection du modèle | no |
models.weak_tier | warn | Les modèles configurés sont en dessous des niveaux actuellement recommandés | sélection du modèle | no |
models.small_params | critical/info | De petits modèles + des surfaces d’outils non sûres augmentent le risque d’injection | choix du modèle + politique sandbox/outils | no |
summary.attack_surface | info | Résumé consolidé de la posture d’authentification, de canal, d’outils et d’exposition | plusieurs clés (voir le détail du résultat) | no |