3 points par GN⁺ 2026-01-13 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Une vulnérabilité critique d’exécution de code à distance permettant d’exécuter du code arbitraire sans authentification a été découverte dans les anciennes versions d’OpenCode
  • Les versions antérieures à la v1.1.10 lancent automatiquement un serveur HTTP qui permet, sans procédure d’authentification, l’exécution de commandes arbitraires, la lecture de fichiers et la création de sessions de terminal
  • Avant la v1.0.216, le simple fait de visiter un site web pouvait suffire à exécuter du code dans l’environnement local de l’utilisateur
  • Dans la dernière version (v1.1.10), le serveur est désactivé par défaut, mais il reste dépourvu d’authentification lorsqu’il est activé
  • Cette vulnérabilité a été enregistrée sous le nom CVE-2026-22812, et les développeurs comme les utilisateurs doivent mettre à jour immédiatement et vérifier leur configuration

Aperçu de la vulnérabilité

  • OpenCode est un assistant de codage IA open source qui, avant la v1.1.10, démarrait automatiquement un serveur HTTP (port par défaut 4096+) à l’exécution
    • Le serveur expose des endpoints tels que POST /session/:id/shell, POST /pty, GET /file/content
    • En l’absence de procédure d’authentification, tout client capable de s’y connecter peut exécuter du code avec les privilèges de l’utilisateur
  • Aucun indicateur visuel ne signale à l’utilisateur que le serveur est en cours d’exécution, ce qui rend son exposition difficile à détecter
  • La politique CORS est codée en dur sur *.opencode.ai, ce qui permet à des pages servies depuis opencode.ai ou un sous-domaine d’accéder à l’API du serveur
    • Si ce domaine est compromis ou présente une faille XSS, tous les utilisateurs dont le serveur est actif peuvent devenir des cibles

Vecteurs d’attaque

  • Avant la v1.0.216 : n’importe quel site web pouvait exécuter du code sur la machine locale d’un utilisateur exécutant OpenCode
  • Avant la v1.1.10 : un processus local ou une page localhost pouvait exécuter du code sans authentification
  • Dans toutes les versions lorsque le serveur est activé :
    • Les processus locaux et les pages localhost peuvent exécuter du code sans authentification
    • Avec le flag --mdns, tout appareil du réseau local peut y accéder
    • Aucun indicateur ne montre que le serveur tourne, si bien que l’utilisateur peut ignorer son exposition
    • Le domaine opencode.ai ou ses sous-domaines peuvent exécuter du code

Exemples d’attaque (Proof of Concept)

  • Attaque locale : lorsque le serveur est en cours d’exécution, un processus local peut créer une session avec la commande curl, puis exécuter la commande id > /tmp/pwned.txt
  • Attaque via navigateur (avant la v1.0.216) : une page web peut transmettre des commandes au serveur local via des requêtes fetch, puis télécharger et exécuter un script distant
    • Fonctionnement confirmé sur Firefox ; Chrome peut afficher une demande de confirmation utilisateur en raison de ses protections d’accès au réseau local

Mesures à prendre côté utilisateur

  • Vérifier la version avec opencode --version, puis mettre à jour vers la v1.1.10 ou une version ultérieure
  • Vérifier dans le fichier de configuration si les options server.port ou server.hostname sont activées
  • Ne pas utiliser le flag --mdns (liaison à 0.0.0.0, exposant le service à l’ensemble du réseau)
  • Si l’utilisation du serveur est indispensable, éviter d’accéder à opencode.ai et à ses sous-domaines
  • Garder à l’esprit que les processus locaux peuvent accéder au serveur sans authentification lorsqu’il est activé

Calendrier de divulgation

  • 2025-11-17 : premier signalement par e-mail, aucune réponse
  • 2025-12-27 : soumission d’un GitHub Security Advisory, aucune réponse
  • 2025-12-29 : publication du signalement par un autre utilisateur
  • 2025-12-30 : application d’une restriction CORS dans la v1.0.216
  • 2026-01-09 : désactivation du serveur par défaut dans la v1.1.10
  • 2026-01-11 : divulgation complète

Actions recommandées

  • Limiter CORS au strict minimum de domaines nécessaires (appliqué dans la v1.0.216)
  • Désactiver le serveur par défaut (appliqué dans la v1.1.10)
  • Ajouter une procédure d’authentification à toutes les requêtes du serveur
  • Fournir à l’utilisateur un indicateur clair lorsque le serveur est en cours d’exécution
  • Documenter explicitement que l’option --mdns effectue une liaison sur 0.0.0.0
  • Appliquer TLS aux communications réseau
  • Publier officiellement le GitHub Security Advisory et le CVE-2026-22812
  • Renforcer la surveillance des e-mails de signalement de sécurité et des alertes GHSA
  • Clarifier la relation de confiance entre les mainteneurs d’OpenCode, opencode.ai et les utilisateurs

Références

  • CVE : CVE-2026-22812
  • Package concerné : npm opencode-ai
  • Dernières informations et contact : cy.md

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.