如果你在 Windows 或 WSL 上使用 OpenCode,資安公司 Pillar Security 提醒你確認自己已經是 1.18.33 或更新的版本。Pillar 部落格上一篇頁面日期為 10 月 19 日的報告指出,這兩個平台上的 1.0.137 到 1.18.32 版本有一個遠端程式碼執行漏洞,遠端 MCP 伺服器可以在 OAuth 登入過程中觸發它。OpenCode 背後的公司 Anomaly 已在 9 月 28 日的 1.18.33 裡修好,但沒有發布資安公告,也沒有申請 CVE,所以 Pillar 表示漏洞掃描工具和相依套件警示都不會提醒使用者升級。
哪些人受影響
據 Pillar 表示,問題只出現在 Windows 和 WSL 上的 OpenCode,而且要設定了遠端 MCP 伺服器才會受影響。漏洞出在 OpenCode 為使用 OAuth 的遠端 MCP 伺服器開啟登入頁面的那一步。Pillar 表示,惡意或遭入侵的伺服器可以藉這一步在開發者的電腦上執行程式碼,使用者不需要再做任何操作,也不需要同意。macOS 和原生 Linux 上的 OpenCode 不受影響,Pillar 的解釋是這兩個系統開啟瀏覽器時不會把網址交給 shell。
Pillar 也提到,伺服器不一定在你加入的時候就是惡意的。有害資料是在 OpenCode 連線時才送過來的,所以之後遭入侵的伺服器、被劫持的登錄項目、仿冒的名稱或過期的網域,都可能造成同樣的結果。
Pillar 給這個漏洞打了 9.8 分(滿分 10 分),定為嚴重等級。這是 Pillar 自己提出的評分,目前還沒有公開的 CVE 編號。
修復是怎麼發布的
Pillar 表示,他們在 8 月 29 日透過 GitHub 私下回報了這個問題。修復在 9 月下旬合併,9 月 28 日隨 OpenCode 1.18.33 發布。我們看了對應的 PR 和發布說明,兩者都沒有提到資安,PR 的標題是一次重構,把 OpenCode 和它的終端介面裡開啟瀏覽器的程式碼合在一起。
Pillar 對修復本身的評價是快,而且比必要的更周全,改了三個地方。不過在 Pillar 看來,真正堵住漏洞的是 OpenCode 用來開啟網頁的一個函式庫升級了版本,而不是新加的那些檢查網址類型的程式碼。
據 Pillar 表示,Anomaly 認為應對惡意 MCP 伺服器不在他們的威脅模型範圍內,所以沒有發布資安公告。這是 Pillar 的轉述,Anomaly 和 X 簡介寫著在做 OpenCode 的 Dax(@thdxr)都還沒有公開回應。
該怎麼做
Pillar 的建議是升級到 OpenCode 1.18.33 或更新版本。如果你在 Windows 或 WSL 上暫時無法升級,Pillar 建議先把沒有核實過的遠端 MCP 伺服器從 OpenCode 設定裡移除,等能升級了再說。由於沒有 CVE 可供掃描工具比對,Pillar 表示資安團隊需要直接檢查 OpenCode 的安裝情況。
