Modern Frontend CVEs

対象CVE: CVE-2026-59160

[緊急注意] @yeger/turbo-graphに認証なしコマンド実行を許す深刻な脆弱性(CVE-2026-59160)

@yeger/turbo-graphパッケージに、ローカルネットワーク経由で認証なしに任意のTurborepoタスクを実行される脆弱性が見つかりました。フロントエンド開発環境での機密情報漏洩やシステム破壊のリスクがあるため、速やかなアップデートが推奨されます。

はじめに:@yeger/turbo-graphユーザーへの緊急警告

@yeger/turbo-graphを利用中のフロントエンドエンジニアの皆様へ、非常に深刻な脆弱性に関する注意喚起です。GHSA-2r5q-h53f-9rp3 / CVE-2026-59160として識別されるこの脆弱性により、ローカルネットワーク上の攻撃者が、認証なしであなたのPC上で任意のコマンドを実行できる可能性が指摘されています。

この脆弱性は、バージョン2.8.8以前の`@yeger/turbo-graph`に存在し、`npx turbo-graph`を実行するすべてのユーザーが影響を受ける可能性があります。機密情報の漏洩やシステム破壊のリスクがあるため、速やかなアップデートが必要です。

脆弱性の概要と、なぜフロントエンドエンジニアに影響があるのか?

この脆弱性の最も深刻な点は、同一のローカルネットワーク(社内LAN、Wi-Fiネットワークなど)に接続している攻撃者が、**認証情報なしにあなたのPC上で任意のTurborepoタスクを実行できる**ことです。これは、開発環境のPCが攻撃者によって完全に支配されることを意味します。

もし悪用された場合、攻撃者は以下のような行為を遠隔から実行する可能性があります。

<ul><li>**機密情報の漏洩(高リスク)**:PC内の`~/.ssh`、`.env`ファイル、APIキー、クラウド認証情報などを読み取り、外部へ送信。</li><li>**データの改ざん・破壊(高リスク)**:プロジェクトファイル、設定ファイル、データベースなどを書き換えたり削除したりする。悪意のあるコードを挿入し、サプライチェーン攻撃の起点とすることも可能。</li><li>**サービスの停止・破壊(高リスク)**:ビルドプロセスを妨害したり、リソースを枯渇させたりして開発環境を機能不全に陥れる。</li></ul>

攻撃にはユーザーの認証情報や事前のアクセスは一切不要で、被害者側の特別な操作も必要ありません。デフォルトのポート番号(29312)は固定されているため、攻撃者は容易に標的を特定できます。

具体的な脆弱性の仕組み(技術的な解説)

この脆弱性は、以下の2つの技術的な問題が組み合わさることで発生します。

<h3>1. Next.jsサーバーの不適切なネットワークバインディング</h3>

`@yeger/turbo-graph`は内部でNext.jsサーバーを起動し、その上でグラフUIを提供しています。しかし、このサーバーは本来「localhost」のようなローカルアクセスに限定されるべきところ、ホスト名が指定されずに起動するため、デフォルトでPCが接続しているすべてのネットワークインターフェース(例: `0.0.0.0:29312`)にバインドされてしまいます。これにより、同じローカルネットワーク内の任意のデバイスから、このサーバーへアクセス可能となってしまいます。

<h3>2. `/api/run`エンドポイントにおける認証・認可の欠如</h3>

公開されたサーバーが提供する`/api/run`というAPIエンドポイントには、認証、認可、CSRF(クロスサイトリクエストフォージェリ)保護、実行可能なタスクのホワイトリストチェックといったセキュリティ対策が一切実装されていません。攻撃者はこのAPIに対し、URLパラメータを通じて任意のTurborepoタスク名(例: `turbo.json`に定義されている`build`や`test`、あるいは攻撃者が用意した悪意のあるタスクなど)を渡すことができます。

サーバーは受け取ったタスク名をそのまま`spawn()`関数に渡し、あたかも開発者自身が`turbo run [タスク名]`コマンドを実行したかのように、PC上でそのタスクを実行してしまいます。これにより、攻撃者は開発者のOSユーザー権限で任意のコマンドを遠隔から実行できる状態となるのです。

フロントエンドエンジニアが取るべき対策

この深刻な脆弱性から身を守るために、以下の対策を速やかに実施してください。

<h3>1. `@yeger/turbo-graph`の速やかなアップデート(最優先)</h3>

最も重要かつ推奨される対策は、脆弱性が修正された最新バージョンにアップデートすることです。これにより、根本的な問題が解決されます。プロジェクトの`package.json`を確認し、該当パッケージを使用している場合はすぐに更新してください。

```bash # npmの場合 npm update @yeger/turbo-graph # yarnの場合 yarn upgrade @yeger/turbo-graph ```

<h3>2. ファイアウォールによるアクセス制限</h3>

もしすぐにアップデートが難しい場合は、`turbo-graph`が起動するPCのファイアウォール設定を見直し、ポート`29312`への外部からのアクセスをブロックしてください。特にWindows Defender FirewallやmacOSのファイアウォール機能で設定可能です。

<h3>3. 信頼できるネットワークでのみ使用する</h3>

`@yeger/turbo-graph`を起動する際は、VPNなどで保護された信頼できる社内ネットワークや自宅ネットワークでのみ使用し、公共のWi-Fiなど不特定多数が接続するネットワークでの使用は避けてください。

<h3>4. `turbo.json`のタスク定義の見直し</h3>

万が一の事態に備え、`turbo.json`に定義されているタスクに、ファイル削除や機密情報アクセスなど、不必要に広範な権限を持つものがないか確認し、権限を最小限に抑えることを検討してください。

まとめ

`@yeger/turbo-graph`の脆弱性は、フロントエンド開発環境におけるサプライチェーン攻撃や内部ネットワークからの攻撃リスクを高めるものです。開発者の皆様が安全に作業を続けられるよう、本記事で解説した対策を速やかに実施されることを強くお勧めします。常に使用しているパッケージの脆弱性情報には注意を払い、最新の状態を保つよう心がけましょう。

← ブログ一覧に戻る