何が起きたか
Datadog Security Labs は、OpenCode AI コーディングエージェントのブラウザインターフェースに重大なリモートコード実行を発見しました:/global/upgrade API は、raw リクエストハンドラーでのコンテンツタイプの混乱と、攻撃者が制御するアップグレードターゲットの安全でない処理を組み合わせ、悪意のあるウェブサイトがパス上の npm タールボールを悪意のある package.json ライフサイクルスクリプトで置き換えることを可能にします。このエクスプロイトには、影響を受けるバージョンを実行しているユーザーが、ローカルエージェントサーバーがアクティブな状態で細工されたページを訪問するだけでよいのです。
なぜ重要か
AI コーディングエージェントは、開発者のマシン上で最も信頼度の高いサーフェスです — ユーザーの認証情報、リポジトリアクセス、シェル権限を保持しています。無害なウェブページ訪問を介してそれを侵害すると、日常的なブラウジング操作がエージェントホストでの完全なコード実行に変換され、AI 支援コードを書くすべての人にとって、コードサプライチェーンへのポイズニングと認証情報窃取を直接可能にします。
攻撃経路
OpenCode のウェブインターフェースが実行されている状態(127.0.0.1:4096 で opencode serve/web)で細工されたウェブページを訪問すると、コンテンツタイプ混乱パスがトリガーされます:/global/upgrade エンドポイントは、攻撃者が制御するアップグレードターゲットをパッケージマネージャーのインストールコマンドに渡し、npm パッケージ仕様はリモートタールボール URL を受け入れるため、隠しフォーム/テキストプレーンリクエストが、preinstall ライフサイクルスクリプトが OpenCode プロセスの権限で実行される悪意のあるパッケージへのインストールを指示できます。未認証の localhost サービスは、トップレベル HTML フォームナビゲーション(CORS をバイパス)を介して敵対的なページから到達可能です。CVE は要求されていません;GitHub アドバイザリを追跡してください。
影響を受けるシステム
OpenCode 1.14.30–1.18.21(npm/pnpm/Bun を介してインストール);1.18.22 で修正;GitHub アドバイザリ GHSA-632h-h47v-g4x4
緩和策
OpenCode 1.18.22+ にアップグレードします(アップグレードターゲットをセマンティックバージョンとして検証し、text/plain ボディを拒否します)。多層防御:OPENCODE_SERVER_PASSWORD を設定し、サービスを localhost 以外に公開せず、突然のパッケージマネージャーアクティビティを侵害の証拠として扱います