- In älteren Versionen von OpenCode wurde eine schwerwiegende Remote-Code-Execution-Schwachstelle entdeckt, die die Ausführung beliebigen Codes ohne Authentifizierung ermöglicht.
- Versionen vor v1.1.10 starten automatisch einen HTTP-Server, der ohne Authentifizierung die Ausführung beliebiger Befehle, das Lesen von Dateien und das Erstellen von Terminal-Sitzungen erlaubt.
- Vor v1.0.216 konnte bereits durch den Besuch einer Website Code in der lokalen Umgebung des Nutzers ausgeführt werden.
- In der aktuellen Version (v1.1.10) ist der Server standardmäßig deaktiviert, aber bei Aktivierung weiterhin ohne Authentifizierung.
- Die Schwachstelle wurde als CVE-2026-22812 registriert; Entwickler und Nutzer sollten sofort aktualisieren und ihre Einstellungen prüfen.
Überblick über die Schwachstelle
- OpenCode ist ein Open-Source-AI-Coding-Assistent und startete vor v1.1.10 beim Ausführen automatisch einen HTTP-Server (Standardport 4096+).
- Der Server stellt Endpunkte wie
POST /session/:id/shell, POST /pty, GET /file/content bereit.
- Da es keine Authentifizierung gibt, kann jeder erreichbare Client Code mit den Rechten des Nutzers ausführen.
- Beim Start des Servers gibt es keine visuelle Anzeige für den Nutzer, wodurch eine Exponierung schwer erkennbar ist.
- Die CORS-Richtlinie ist fest auf
*.opencode.ai kodiert, sodass Seiten, die von opencode.ai oder einer Subdomain ausgeliefert werden, auf die Server-API zugreifen können.
- Wird diese Domain kompromittiert oder existiert dort eine XSS-Schwachstelle, können alle Nutzer mit aktiviertem Server angegriffen werden.
Angriffsvektoren
- Vor v1.0.216: Beliebige Websites konnten auf der lokalen Maschine von Nutzern mit laufendem OpenCode Code ausführen.
- Vor v1.1.10: Lokale Prozesse oder localhost-Seiten konnten ohne Authentifizierung Code ausführen.
- In allen Versionen bei aktiviertem Server:
- Lokale Prozesse und localhost-Seiten können ohne Authentifizierung Code ausführen.
- Mit dem Flag
--mdns können alle Geräte im lokalen Netzwerk zugreifen.
- Es gibt keine Anzeige dafür, ob der Server läuft, sodass Nutzer ihre Exponierung nicht erkennen.
- Über die Domain opencode.ai oder deren Subdomains kann Code ausgeführt werden.
Angriffsbeispiele (Proof of Concept)
- Lokaler Angriff: Wenn der Server läuft, kann ein lokaler Prozess per
curl eine Sitzung erstellen und anschließend den Befehl id > /tmp/pwned.txt ausführen.
- Browserbasierter Angriff (vor v1.0.216): Eine Webseite kann per
fetch Anweisungen an den lokalen Server senden und Remote-Skripte herunterladen und ausführen.
- Das Verhalten wurde unter Firefox bestätigt; Chrome kann wegen des Schutzes vor Zugriffen auf das lokale Netzwerk einen Bestätigungsdialog anzeigen.
Maßnahmen für Nutzer
- Mit
opencode --version die Version prüfen und auf v1.1.10 oder höher aktualisieren.
- In der Konfigurationsdatei prüfen, ob
server.port oder server.hostname aktiviert ist.
- Das Flag
--mdns nicht verwenden (bindet an 0.0.0.0 und legt den Dienst im gesamten Netzwerk offen).
- Wenn der Server zwingend benötigt wird, opencode.ai und dessen Subdomains nicht aufrufen.
- Nutzer sollten sich bewusst sein, dass lokale Prozesse bei aktiviertem Server ohne Authentifizierung zugreifen können.
Zeitplan der Offenlegung
- 2025-11-17: Erstmeldung per E-Mail, keine Antwort
- 2025-12-27: GitHub Security Advisory eingereicht, keine Antwort
- 2025-12-29: Öffentliche Meldung durch einen anderen Nutzer
- 2025-12-30: CORS-Beschränkung in v1.0.216 eingeführt
- 2026-01-09: Server standardmäßig deaktiviert in v1.1.10
- 2026-01-11: Vollständige Offenlegung
Empfohlene Maßnahmen
- CORS auf ein Minimum an Domains beschränken (umgesetzt in v1.0.216)
- Server standardmäßig deaktivieren (umgesetzt in v1.1.10)
- Authentifizierung für alle Serveranfragen hinzufügen
- Nutzern beim Start des Servers eine klare Anzeige geben
- In der Dokumentation klar angeben, dass die Option
--mdns an 0.0.0.0 bindet
- TLS für Netzwerkkommunikation einsetzen
- GitHub Security Advisory und CVE-2026-22812 offiziell veröffentlichen
- Monitoring für Sicherheitsmeldungen per E-Mail und GHSA-Benachrichtigungen verbessern
- Die Vertrauensbeziehung zwischen OpenCode-Maintainern, opencode.ai und Nutzern klarstellen
Referenz
- CVE: CVE-2026-22812
- Betroffenes Paket: npm
opencode-ai
- Aktuelle Informationen und Kontakt: cy.md
Noch keine Kommentare.