Windows や WSL で OpenCode を使っているなら、バージョン 1.18.33 以降になっているか確認するよう、セキュリティ企業の Pillar Security が呼びかけています。同社のブログに掲載された 10 月 19 日付のレポートによると、これらの環境の 1.0.137 から 1.18.32 には、リモートの MCP サーバーが OAuth のサインイン中に悪用できるリモートコード実行の欠陥があります。OpenCode を開発する Anomaly は 9 月 28 日の 1.18.33 で修正しましたが、セキュリティアドバイザリーを出さず、CVE も申請しなかったため、脆弱性スキャナーや依存関係のアラートでは更新が促されないと Pillar は指摘しています。

影響を受けるのは誰か

Pillar によると、影響があるのは Windows と WSL の OpenCode だけで、しかもリモートの MCP サーバーを設定している場合に限られます。問題は、OAuth を使うリモートの MCP サーバーのために OpenCode がサインインページを開く処理にあります。悪意のある、あるいは乗っ取られたサーバーがこの処理を使うと、ユーザーがそれ以上何もしなくても、同意しなくても、開発者のマシンでコードを実行できると Pillar は説明しています。macOS とネイティブの Linux の OpenCode は影響を受けません。これらの環境ではブラウザーを開く処理がアドレスをシェルに渡さないためだと Pillar は書いています。

Pillar はまた、最初に追加した時点でサーバーが悪意を持っている必要はないと指摘しています。有害なデータは接続時に届くため、あとから乗っ取られたサーバーや、乗っ取られたレジストリの登録、紛らわしい名前、期限切れのドメインでも同じ結果になり得るとしています。

Pillar はこの欠陥を 10 点満点中 9.8 点の「Critical」と評価していますが、これは同社自身が提案したスコアで、公開された CVE はまだありません。

修正はどう出されたか

Pillar によると、同社は 8 月 29 日に GitHub を通じて非公開で報告しました。修正は 9 月下旬にマージされ、9 月 28 日の OpenCode 1.18.33 でリリースされました。プルリクエストとリリースノートを私たちも確認しましたが、どちらにもセキュリティへの言及はなく、プルリクエストのタイトルは、OpenCode とターミナル画面でブラウザーを開く処理を共通化するリファクタリングとなっています。

Pillar は修正そのものについて、素早く、必要以上に丁寧で、3 か所に手が入っていると評価しています。ただ同社の見方では、実際に穴をふさいだのは、OpenCode がウェブページを開くために使うライブラリーの更新で、開けるアドレスの種類を確かめる新しいチェックではないとしています。

Pillar によると、Anomaly は悪意のある MCP サーバーへの対応は自社の脅威モデルの範囲外だとして、アドバイザリーを出さなかったといいます。これは Pillar による説明で、Anomaly も、X のプロフィールで OpenCode を開発していると書いている Dax 氏(@thdxr)も、公にコメントしていません。

どうすればよいか

Pillar は OpenCode 1.18.33 以降に更新するよう勧めています。Windows や WSL ですぐに更新できない場合は、それまでの間、確認していないリモートの MCP サーバーを OpenCode の設定から外すよう提案しています。スキャナーが照合できる CVE がないため、セキュリティチームは OpenCode のインストール状況を直接確かめる必要があると Pillar は書いています。