
Vérification de durcissement hors ligne, en lecture seule, pour une installation auto-hébergée d'OpenClaw — exposition de la passerelle, authentification, CVE-2026-25253. N'affiche jamais les secrets, n'effectue aucun appel réseau.
Ce script ne fait que lire. Il ne répare rien et ne garantit pas que vous êtes en sécurité. Un résultat vert signifie uniquement que les vérifications listées ci-dessous ont réussi — et rien de plus.
openclaw-hardening-check.mjs est un petit outil de vérification hors ligne, sans dépendances, d'une installation OpenClaw. Il lit la configuration locale, les métadonnées des paquets, les manifests des plugins et compétences, les modes de fichiers et — sous Linux — les entrées du Gateway en cours d'exécution dans /proc. Il ne modifie pas les fichiers, n'appelle pas de commandes OpenClaw, ne contacte aucun registre et n'effectue aucune requête réseau.
gateway.bind est en boucle locale, non-boucle locale ou dépendant de l'exécution. Une liaison non définie ou auto dans un conteneur Docker, Podman, Kubernetes ou Fly détecté est traitée comme 0.0.0.0, conformément à la valeur par défaut du conteneur OpenClaw. Un Gateway Linux en cours d'exécution est vérifié séparément afin qu'une surcharge de ligne de commande ou de service ne puisse pas se cacher derrière une valeur de configuration sûre.gateway.auth.token en texte clair et .password. Il reconnaît ${VAR}, $VAR, secretref-env:VAR, __env__:VAR et les SecretRefs structurés avant de mesurer un identifiant. Les preuves d'authentification par environnement proviennent du processus Gateway correspondant, de gateway.systemd.env ou du .env de l'état, jamais du processus auditeur. Les valeurs des secrets ne sont jamais affichées ; le rapport contient uniquement la présence, la classe de source et la longueur. Les exemples de placeholders publiés et les jetons de moins de 24 caractères sont signalés.2026.1.29 comme affectées. La vulnérabilité permettait à un gatewayUrl dans la chaîne de requête de déclencher une connexion WebSocket qui divulguait le jeton du Gateway. Voir l'entrée NVD et l'avis OpenClaw.latest, beta ou main lorsque la provenance de l'installation est fournie. npm et pnpm ne conservent pas la balise de distribution demandée d'origine dans le paquet installé, donc le script signale « impossible de vérifier » au lieu de deviner lorsque cette provenance est absente..env, gateway.systemd.env, les fichiers auth-profiles.json découverts et les SecretRefs résolus pour une exposition au groupe/monde ou une propriété inattendue.dist-runtime/extensions — séparément des éléments trouvés dans l'état, le répertoire de configuration, gérés, espace de travail, personnels, configurés ou projets npm. Les éléments non fournis sont marqués pour une revue manuelle, jamais étiquetés comme malveillants./proc/net/tcp* aux processus Gateway (fichier d'entrée ou binaire) et signale tous les écouteurs TCP non-boucle locale qu'ils possèdent. Un écouteur sur le port attendu dont le propriétaire ne peut pas être vérifié produit « impossible de vérifier », pas « Gateway ne fonctionne pas ». La vérification fonctionne toujours depuis le disque lorsque le Gateway est arrêté.Les chemins et valeurs par défaut suivent la documentation officielle de configuration, la référence de configuration, le runbook d'exposition du Gateway, la documentation des compétences et la documentation de gestion des plugins.
Copiez le script sur la machine qui exécute OpenClaw, puis exécutez-le en tant que même utilisateur OS :
node openclaw-hardening-check.mjs
La configuration par défaut d'OpenClaw est ~/.openclaw/openclaw.json. Le script respecte également OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR et OPENCLAW_GATEWAY_PORT.
Des surcharges optionnelles sont disponibles pour les dispositions non standard et les vérifications d'épinglage reproductibles :
node openclaw-hardening-check.mjs \
--config /srv/openclaw/openclaw.json \
--state-dir /srv/openclaw \
--package-root /opt/openclaw/lib/node_modules/openclaw \
--install-spec 2026.6.10
--install-spec doit être la cible utilisée à l'origine par l'installateur ou la définition de déploiement. Passer la version actuellement installée sans vérifier cette provenance ne prouve pas que le déploiement est épinglé.
Le vérificateur n'émet jamais le secret lui-même, donc la forme publiable n'enregistre que sa source et sa longueur :
Vérification de renforcement OpenClaw
Lecture seule et hors ligne. Les valeurs des secrets ne sont jamais affichées.
Config : ~/.openclaw/openclaw.json
[PASS] Config : chargée ~/.openclaw/openclaw.json sans afficher son contenu.
[PASS] Liaison du Gateway : boucle locale ; configuré pour un accès local uniquement.
[PASS] Authentification du Gateway : présente via le bootstrap de l'environnement du processus Gateway, longueur 48 ; la valeur n'a pas été affichée.
[PASS] Sockets d'écoute : les écouteurs TCP OpenClaw sont en boucle locale uniquement : 127.0.0.1:18789, [::1]:18789.
[PASS] CVE-2026-25253 : la version installée du paquet 2026.6.10 est au moins aussi récente que 2026.1.29.
[PASS] Épinglage de l'installation : la cible exacte 2026.6.10 est enregistrée pour cette vérification.
[WARN] Plugins tiers : 1 : example-plugin. Examinez-le vous-même ; aucune conclusion de malveillance n'a été tentée.
Résumé : Aucun problème de sécurité trouvé. 1 élément signalé pour votre revue ; code de sortie 0.
Valeur du secret : [REDACTED — jamais présente dans la sortie].
Le résumé compte les problèmes de sécurité (FAIL), les éléments de révision manuelle (WARN) et les vérifications incomplètes (CANNOT CHECK) séparément. Les résultats WARN et CANNOT CHECK seuls ne font pas échouer le processus ; seul un FAIL renvoie le code de sortie 1.
| Code | Signification |
|---|---|
0 | Aucun problème de sécurité FAIL trouvé ; des résultats WARN ou CANNOT CHECK peuvent être présents. |
1 | Au moins un problème de sécurité FAIL nécessite une attention. |
2 | La ligne de commande est invalide, ou la configuration n'a pas pu être trouvée, lue, incluse ou analysée en toute sécurité. |
/proc. Les autres plateformes reçoivent un résultat explicite « impossible de vérifier ».@latest. Fournissez une provenance de déploiement fiable avec --install-spec.La suite de tests utilise uniquement node:test et des répertoires temporaires :
node --test test/openclaw-hardening-check.test.mjs
Ilya Prudnikov — cain-ai.com