3 पॉइंट द्वारा GN⁺ 2026-01-13 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • OpenCode के पुराने versions में बिना authentication के मनचाहा code execute करने वाली गंभीर remote code execution vulnerability पाई गई
  • v1.1.10 से पहले के versions अपने-आप HTTP server चलाते हैं, और यह server बिना authentication के arbitrary command execution, file read, terminal session creation की अनुमति देता है
  • v1.0.216 से पहले सिर्फ वेबसाइट विज़िट करने भर से उपयोगकर्ता के local environment में code execute हो सकता था
  • नवीनतम version (v1.1.10) में server default रूप से disabled है, लेकिन enable होने पर अब भी authentication नहीं है
  • इस vulnerability को CVE-2026-22812 के रूप में दर्ज किया गया है, और developers व users को तुरंत update करने और settings की जांच करने की जरूरत है

vulnerability overview

  • OpenCode एक open source AI coding assistant है, और v1.1.10 से पहले run होने पर अपने-आप HTTP server (default port 4096+) शुरू करता था
    • server POST /session/:id/shell, POST /pty, GET /file/content जैसे endpoints देता है
    • authentication process नहीं होने से connect कर सकने वाला कोई भी client user permissions के साथ code execute कर सकता है
  • server चलने पर user को कोई visual indication नहीं मिलता, इसलिए expose हुआ है या नहीं, यह समझना मुश्किल है
  • CORS policy *.opencode.ai पर hardcode है, इसलिए opencode.ai या उसके subdomains से serve किया गया page server API को access कर सकता है
    • अगर वह domain compromise हो जाए या उसमें XSS vulnerability हो, तो server enabled स्थिति वाले सभी user attack के दायरे में आ सकते हैं
विज्ञापन

attack vectors

  • v1.0.216 से पहले: कोई भी arbitrary website OpenCode चला रहे user की local machine पर code execute कर सकती थी
  • v1.1.10 से पहले: local process या localhost page बिना authentication के code execute कर सकते थे
  • सभी versions में, अगर server enabled हो:
    • local process और localhost pages बिना authentication के code execute कर सकते हैं
    • --mdns flag इस्तेमाल करने पर local network के सभी devices access कर सकते हैं
    • server चल रहा है या नहीं, इसका कोई indication नहीं, इसलिए user को exposure का पता नहीं चलता
    • opencode.ai domain या उसके subdomains से code execute किया जा सकता है

attack examples (Proof of Concept)

  • local attack: server चल रहा हो तो local process curl command से session बनाकर id > /tmp/pwned.txt command execute कर सकता है
  • browser-based attack (v1.0.216 से पहले): web page fetch request के जरिए local server को command भेजकर remote script download और execute कर सकती है
    • Firefox में इसका काम करना verify हुआ, जबकि Chrome local network access protection के कारण user confirmation prompt दिखा सकता है
विज्ञापन

user response measures

  • opencode --version से version check करें और v1.1.10 या उससे ऊपर update करें
  • settings file में server.port या server.hostname item enabled है या नहीं, यह जांचें
  • --mdns flag का इस्तेमाल न करें (यह 0.0.0.0 पर bind होकर पूरे network पर expose करता है)
  • अगर server का इस्तेमाल करना ही पड़े, तो opencode.ai और उसके subdomains पर जाना बंद करें
  • यह समझें कि server enabled होने पर local processes बिना authentication के access कर सकते हैं

disclosure timeline

  • 2025-11-17: email से पहली report, कोई response नहीं
  • 2025-12-27: GitHub Security Advisory submit किया, कोई response नहीं
  • 2025-12-29: दूसरे user ने public report की
  • 2025-12-30: v1.0.216 में CORS restriction लागू की गई
  • 2026-01-09: v1.1.10 में server default रूप से disabled किया गया
  • 2026-01-11: full disclosure

recommended actions

  • CORS को न्यूनतम जरूरी domains तक सीमित करें (v1.0.216 में लागू)
  • server को default रूप से disabled रखें (v1.1.10 में लागू)
  • सभी server requests में authentication process जोड़ें
  • server चलने पर user को स्पष्ट indication दें
  • docs में स्पष्ट लिखें कि --mdns option 0.0.0.0 पर bind होता है
  • network communication में TLS लागू करें
  • GitHub Security Advisory और CVE-2026-22812 को आधिकारिक रूप से publish करें
  • security reporting email और GHSA alerts की बेहतर monitoring करें
  • OpenCode maintainers, opencode.ai और users के बीच trust relationship स्पष्ट करें

reference

  • CVE: CVE-2026-22812
  • प्रभावित package: npm opencode-ai
  • नवीनतम जानकारी और संपर्क: cy.md

1 टिप्पणियां

 
GN⁺ 2026-01-13
Hacker News की राय
  • एक maintainer के तौर पर यह माना कि इस security report के जवाब को ठीक से संभाल नहीं पाए
    उपयोग अचानक बहुत बढ़ गया, इसलिए issues की बाढ़ आ गई, और इस हफ्ते विशेषज्ञों से मिलकर bug bounty program और security audit आगे बढ़ाने की योजना है

    • bug bounty या audit पर पैसे खर्च करने से बेहतर संगठन को फिर से व्यवस्थित करने और कर्मचारियों की training में निवेश करना चाहिए
      सभी टीम members का OWASP Insecure Design guide को समझना और अमल में लाना ज़्यादा महत्वपूर्ण है
    • शुरुआत में बात सकारात्मक लगी, लेकिन vulnerability report करने वालों ने कई बार संपर्क किया फिर भी जवाब नहीं मिला, यह चिंताजनक है
      OpenCode एक मशहूर open source coding agent है, इसलिए संभव है कि इसका पहले ही दुरुपयोग हो चुका हो
      अभी भी मॉडल को gVisor जैसे sandbox environment में चलाना ज़रूरी लगता है
      जल्दी प्रतिक्रिया नहीं दी गई तो और हमलावर RCE vulnerabilities को निशाना बना सकते हैं
    • लगता है कि project बहुत तेज़ी से बढ़ा है, और अब organizational management code development से भी ज़्यादा महत्वपूर्ण हो गया है
      क्या आप लोग anarchism-style organizational operating principles जैसी चीज़ों का भी संदर्भ ले रहे हैं?
    • क्या बस Claude से security issue ठीक करने को कह देना काफी नहीं है?
    • स्थिति को ईमानदारी से साझा करना और ज़िम्मेदारी लेना अच्छा लगा। यह आसान नहीं होता, इसके लिए धन्यवाद
  • बहुत से लोग OpenCode जैसे tools को local environment में बिना privilege separation के चला रहे हैं
    plugins भी default रूप से unlimited access मानकर बनाए गए हैं, और resource usage भी काफ़ी ज़्यादा है
    कम से कम इसे dev-container या VM के अंदर चलाना चाहिए, और SSHFS या Samba से सिर्फ़ ज़रूरी files जोड़नी चाहिए
    अगर यह झंझट लगे तो 5 डॉलर महीने वाला VPS भी इस्तेमाल कर सकते हैं

    • क्या dev-container या VM सेट करने का तरीका थोड़ा विस्तार से बताया जा सकता है?
    • Claude हर बार run करते समय permission request करता है, इसलिए उस लिहाज़ से थोड़ा ज़्यादा सुरक्षित है
    • AI sandbox के लिए fly.io का sprites.dev काफ़ी अच्छा है
      server को qemu से चलाना हो तो quickemu recommended है
      zed का SSH remote feature भी काम का है, इसलिए Claude Code या OpenCode को साथ में इस्तेमाल किया जा सकता है
  • CORS fix से बाहरी websites द्वारा दुरुपयोग रुक गया, लेकिन मूल समस्या यह है कि localhost पर code execution संभव है
    Neovim default रूप से domain socket का उपयोग करता है, और VS Code के SSH daemon में authentication process होता है
    कोई local server जो authentication के बिना client input execute करे, वह LCE(Local Code Execution) vulnerability है,
    और जब browser requests के ज़रिए उसे access किया जा सके, तो वह RCE(Remote Code Execution) तक बढ़ जाती है

  • यह चौंकाने वाला है कि CLI tool में authentication के बिना RCE वाला HTTP endpoint डाला गया, और उसके ऊपर CORS bypass भी जोड़ दिया गया

    • लगता है AI labs को tutorial code पर models की training बंद करनी चाहिए
    • server इतना खुला हुआ था, फिर भी CORS policy “*” नहीं थी, यह उल्टा और भी हैरान करने वाली बात है
    • कुछ लोगों ने कहा कि यह “बस vibe से लिखा गया code” लगता है
  • vulnerability disclosure timeline भी समस्या है
    2025-11-17 को रिपोर्ट किया गया था, लेकिन कई बार संपर्क के बावजूद कोई जवाब नहीं मिला

    • अब लगता है कि developers गंभीरता से प्रतिक्रिया देने की कोशिश कर रहे हैं
      GitHub issue comment देखें
    • “आजकल सब vibe coding में लगे हैं, इसलिए security issues bad vibes हैं” जैसी मज़ाकिया प्रतिक्रिया भी थी
  • server default रूप से बंद हो, तब भी चालू होने पर यह गंभीर समस्या बनी रहती है
    localhost से कोई भी webpage code execution कर सकता है, और authentication के बिना local processes भी चला सकता है
    user को यह बताने का कोई संकेत भी नहीं है कि server चल रहा है या नहीं
    TUI apps पर आमतौर पर इसलिए भरोसा किया जाता है कि वे इस तरह की हरकत नहीं करते, लेकिन इस घटना ने उस भरोसे को गंभीर रूप से नुकसान पहुँचाया है

    • यह सवाल भी उठा कि आख़िर खास तौर पर TUI app ही समस्या क्यों है
    • एक विकल्प के रूप में Factory का Droid अच्छा बताया गया
  • यह भी हैरान करने वाली बात है कि OpenCode को YC(Y Combinator) का समर्थन मिला हुआ है
    लगा था कि YC बेहतर security culture को बढ़ावा देगा

    • कुछ लोगों की नज़र में YC के लिए आख़िरकार पैसा ही सब कुछ है
    • पहले YC से निकले Flock का password को 53 बार hardcode करने वाला मामला भी था
      संबंधित बात के लिए यह comment देखें
    • ऊपर से यह भी विडंबना है कि OpenCode Auth provider product भी बनाता है
  • लगा था OpenCode कोई volunteer project है, लेकिन पता चला कि यह बड़े निवेशकों के समर्थन वाला कंपनी-शैली project है

    • official GitHub repository के अलावा charm.sh टीम का बनाया एक competing project भी था
    • शायद crush, roocode, kilo जैसे projects की बात हो रही थी। इन्हें अभी बड़ा backing नहीं मिला है
  • features ही जोड़ते जाने और core maintenance को नज़रअंदाज़ करने की वजह से इसका इस्तेमाल बंद कर दिया
    मकसद कई models को साथ में इस्तेमाल करना था, लेकिन context sharing अप्रभावी होने से इसकी उपयोगिता कम लगती है
    अभी Claude Code और Codex को साथ में इस्तेमाल कर रहा हूँ
    फिर भी कई models को एकीकृत करने वाले open platform की ज़रूरत अब भी बहुत है

    • ampcode(link) और Crush(link) + z.ai GLM का combination recommend किया गया
      ampcode से free में आसान scripts बनाई जा सकती हैं, और Crush+GLM Claude या Codex की plans को अच्छी तरह follow करता है
    • यह राय भी थी कि नए features जोड़ने से ज़्यादा मुश्किल review और quality control के discipline को बनाए रखना है
  • शुरुआत में Aider पसंद था, लेकिन maintenance लगभग न के बराबर होने से अक्सर समस्याएँ आईं
    OpenCode install करने ही वाला था, लेकिन यह मामला देखकर हिचकिचाहट होने लगी
    model-agnostic open source CLI LLM assistant इतने कम हैं, यह हैरानी की बात है