Modern Frontend CVEs

対象CVE: CVE-2026-59148

[緊急] Mockoonの深刻な脆弱性 (GHSA-rqx4-3f6q-3x2v) - 開発環境を脅かすクロスオリジン攻撃の危険性

MockoonのAdmin APIに認証機構がなく、ワイルドカードCORSが設定されているため、開発中のモックサーバーの状態ハイジャックや機密情報の窃取がクロスオリジン攻撃によって可能となる深刻な脆弱性について解説します。

はじめに

日頃よりMockoonを利用してAPIモックを作成されているフロントエンドエンジニアの皆さん、こんにちは。今回は、皆さんの開発環境に直接影響を及ぼす可能性のある、MockoonのAdmin APIに関する深刻な脆弱性 (GHSA-rqx4-3f6q-3x2v / CVE-2026-59148) について解説します。

この脆弱性は、ローカルでMockoonを起動している状態で悪意のあるウェブサイトを訪問した場合に、開発環境のモックサーバーが外部から操作され、APIキーなどの機密情報が窃取されたり、モックのレスポンスが改ざんされたりする危険性があるものです。フロントエンド開発者は自身のセキュリティを確保するためにも、この情報を理解し、適切な対策を講じることが不可欠です。

脆弱性の概要 (GHSA-rqx4-3f6q-3x2v / CVE-2026-59148)

この脆弱性は、Mockoonのコアライブラリである `@Mockoon/commons-server`、CLI版、およびServerless版において、以下の3つの主要な問題が組み合わさることで発生します。

1. **認証なしのAdmin API**: MockoonのAdmin APIは、デフォルトで有効になっており、かつ一切の認証メカニズムがありません。これにより、誰でもAdmin APIのエンドポイントにアクセスできてしまいます。

2. **ワイルドカードCORS (Access-Control-Allow-Origin: *)**: Admin APIのすべてエンドポイントで、`Access-Control-Allow-Origin: *` が設定されています。これにより、任意のオリジンからのクロスオリジンリクエストが許可されます。

3. **デフォルトのバインド設定**: Mockoonサーバーは、デフォルトで `0.0.0.0` (または `::`) にバインドされるため、ローカルネットワーク上だけでなく、外部からアクセス可能な環境にデプロイされている場合はインターネットからもAdmin APIにアクセスできる状態になります。

これらの問題が重なることで、攻撃者は認証なしでAdmin APIにアクセスし、モックサーバーの状態を完全に制御できるだけでなく、クロスオリジンからの攻撃も可能となります。

具体的な影響範囲と攻撃シナリオ

この脆弱性により、攻撃者は以下のような非常に広範な攻撃を行うことが可能です。

1. **機密情報の窃取・改ざん**: 環境変数に設定された `MOCKOON_*` で始まるAPIキー、JWTシークレット、OAuthクライアントシークレットなどの機密情報を読み取ることができます。さらに、**任意のプロセス環境変数** (例: `AWS_SECRET_ACCESS_KEY`) を書き換えることも可能です。これにより、開発者の認証情報が漏洩したり、重要な設定値が悪意のある値に改ざんされたりする危険性があります。

2. **モックサーバーの完全な制御**: 実行中のモックルートのレスポンス(HTTPボディ、ステータスコード、HTTPヘッダーなど)をリアルタイムで書き換えることができます。これにより、開発中のフロントエンドアプリケーションが悪意のあるデータを処理させられたり、`Set-Cookie` や `Location`、`Content-Security-Policy` といった重要なヘッダーを改ざんされたりする可能性があります。

3. **認証情報を含む通信内容の傍受**: トランザクションログやSSE (Server-Sent Events) ストリームを通じて、フロントエンドアプリケーションがモックサーバーに送信したリクエストのヘッダー(`Authorization`、`Cookie`、`X-API-Key`など)やボディを読み取ることができ、これにより機密情報が継続的に漏洩する可能性があります。

4. **サービス妨害 (DoS)**: モックサーバーの状態をリセット(パージ)することができ、開発中の機能テストや連携テストを妨害する可能性があります。

この脆弱性の最も直接的な脅威は、クロスオリジン攻撃(CSRF)です。あなたがローカル環境で `mockoon-cli start ...` コマンドでMockoonサーバーを起動していると仮定します。この状態で、もし悪意のあるウェブサイトをブラウザで開いてしまった場合、そのウェブサイト上のJavaScriptがあなたのローカルで動作しているMockoonのAdmin APIに対して、**認証なしで**リクエストを送信できてしまいます。

例えば、以下のような攻撃が考えられます。

- あなたの `MOCKOON_API_KEY` を外部のサーバーに送信し、APIキーを窃取する。

- 開発中のアプリケーションがテストのために取得するモックAPIのレスポンスを改ざんし、不正なデータを注入したり、エラーを発生させたりする。

このような攻撃は、開発中のアプリケーションのセキュリティテストの結果を歪めたり、開発プロセス自体を妨害したりする可能性があります。CVSSスコアはローカル開発モードで8.8 (High)、ネットワークに公開された環境では9.4 (Critical) と評価されており、非常に深刻です。

対策と推奨事項

この脆弱性から皆さんの開発環境を守るために、以下の対策を強く推奨します。

1. **Admin APIの無効化**: 最も簡単で確実な対策は、Admin APIを無効にすることです。Mockoon CLIを使用している場合は、起動時に `--disable-admin-api` フラグを追加してください。

```bash

mockoon-cli start --data env.json --port 3100 --disable-admin-api

```

2. **Mockoonのアップデート**: この脆弱性に対する公式な修正がリリースされ次第、速やかに最新版にアップデートしてください。CVE-2026-59148という将来のCVE IDが振られていることから、修正がまだ公開されていない可能性もありますが、開発元からの情報を注視しましょう。

3. **Admin APIの認証設定**: もしAdmin APIの利用が不可欠な場合は、Mockoon側で導入される予定の認証メカニズム(例: `MOCKOON_ADMIN_TOKEN` 環境変数を用いたトークン認証)を必ず有効にしてください。

4. **CORS設定の制限**: Admin APIが公開するCORS設定を、`Access-Control-Allow-Origin: *` ではなく、特定の信頼できるオリジンのみに制限するオプションが提供された場合は、それを活用してください。

5. **Admin APIのポート制限**: 可能であれば、Admin APIをループバックアドレス (`127.0.0.1`) のみにバインドするか、Admin API専用のポートを分離し、ファイアウォールなどでアクセスを制限することを検討してください。

6. **環境変数設定のプレフィックスチェック**: Admin APIの環境変数設定機能を使用する場合、`MOCKOON_*` のように、特定のプレフィックスを持つ環境変数のみを書き換え可能にするような、より厳格なチェックが実装されることが望まれます。現状では、任意の環境変数が書き換えられるため注意が必要です。

まとめ

MockoonのAdmin APIに存在する認証の欠如と過度なCORS設定は、開発環境における重大なセキュリティリスクとなります。特に、ローカルでMockoonを利用しているフロントエンドエンジニアの皆さんは、悪意のあるウェブサイトを訪問するだけでクロスオリジン攻撃を受け、機密情報の窃取や開発中のアプリケーションへの妨害行為が行われる可能性があります。

この脆弱性に対する修正がリリースされるまでの間、**Admin APIを無効化する**か、もし利用が必要であれば**アクセス制限や認証メカニズムの導入(将来的に実装された場合)**を速やかに検討し、安全な開発プラクティスを維持するよう強く推奨します。ご自身の開発環境の安全性を確保し、安心して開発を進めていきましょう。

← ブログ一覧に戻る