
J’ai trouvé une vulnérabilité zero-day dans OpenClaw — voici comment ça s’est passé
En examinant le code source, je me suis concentré sur la façon dont OpenClaw gère les requêtes HTTP — plus précisément la fonction fetchWithSsrFGuard(), responsable des appels fetch côté serveur.
J'ai remarqué quelque chose d'anormal.
Lorsqu'une requête suivait une redirection inter-origines (c'est-à-dire que le serveur envoyait une réponse 3xx pointant vers un domaine différent), OpenClaw était censé supprimer les en-têtes sensibles avant de transmettre la requête à la nouvelle destination. Il le faisait — mais uniquement pour une liste noire codée en dur et restreinte :
Authorization, Proxy-Authorization, Cookie, Cookie2
Le problème ? Cette liste est incomplète.
Les en-têtes d'autorisation personnalisés comme X-Api-Key, Private-Token, ou tout autre en-tête de type bearer couramment utilisé par les développeurs — aucun d'entre eux n'était supprimé. Ils étaient transmis tels quels à la destination de redirection.
Cela signifie que : si un attaquant pouvait contrôler ou influencer la destination d'une redirection, il pouvait recevoir des identifiants sensibles qui ne lui étaient jamais destinés.
Imaginez que votre application utilise OpenClaw pour appeler une API interne avec un en-tête X-Api-Key personnalisé. Un serveur malveillant répond par une redirection vers une URL contrôlée par l'attaquant. OpenClaw suit la redirection — et transmet votre clé API avec elle.
Fin de la partie. Vos identifiants sont désormais entre les mains de quelqu'un d'autre.
Score CVSS 3.1 : 9,3 (Critique)
Les mainteneurs ont remplacé l'approche par liste noire par une liste blanche d'en-têtes sûrs. Au lieu d'essayer de bloquer les en-têtes connus comme dangereux, la nouvelle logique n'autorise que les en-têtes connus comme sûrs lors des redirections inter-origines — comme la négociation de contenu et les validateurs de cache. Tout le reste est supprimé par défaut.
C'est la bonne approche. La sécurité basée sur une liste noire est fragile ; la sécurité basée sur une liste blanche est robuste.
Références
46715371b0612a6f9114dffd1466941ac476cef5<= 2026.3.2>= 2026.3.7Mettez à jour immédiatement vers >= 2026.3.7.
Si vous utilisez des en-têtes d'autorisation personnalisés (comme X-Api-Key ou Private-Token) et que vous étiez sur une version antérieure, considérez ces identifiants comme potentiellement compromis et faites-les pivoter.