Modern Frontend CVEs

対象CVE: CVE-2026-61782

【緊急警告】Rspack開発サーバーの脆弱性でソースコードが漏洩?!`@rsdoctor/rspack-plugin`の深刻な問題と対処法

`@rsdoctor/rspack-plugin`の旧バージョンにおいて、開発環境のレポートHTTPサーバーから認証なしでプロジェクトのソースコードや機密情報が外部に漏洩する深刻な脆弱性が発見されました。日本のフロントエンドエンジニアの皆さんは、速やかな対応が求められます。

はじめに:`@rsdoctor/rspack-plugin`とは?

Rspackをお使いのフロントエンドエンジニアの皆さん、こんにちは。`@rsdoctor/rspack-plugin`は、Rspackのビルドプロセスを深く分析し、パフォーマンスレポートやデバッグ情報を提供する非常に便利なツールです。開発中にビルドのボトルネックを特定したり、バンドル内容を視覚化したりするのに役立ちます。しかし、この便利なツールに、開発環境であなたのプロジェクトの機密情報を危険に晒す可能性のある、深刻な脆弱性が発見されました。

深刻な脆弱性:開発サーバーからの機密情報漏洩 (CVE-2026-61782 / GHSA-jmg2-rcxh-w8q3)

今回報告された脆弱性(ID: GHSA-jmg2-rcxh-w8q3 / CVE: CVE-2026-61782)は「High」と評価されており、`@rsdoctor/rspack-plugin`が提供するレポートHTTPサーバーに、認証なしでプロジェクトのソースコードやビルド設定などの機密情報が漏洩する可能性があるというものです。Rspackビルドを実行する際(CI環境以外)にデフォルトで自動起動するため、多くの開発者が意識せずにリスクに晒されている可能性があります。

なぜ危険なのか?脆弱性のメカニズムを深掘り

この脆弱性は、複数の問題が組み合わさることで発生します。具体的には以下の4点が挙げられます。

1. **ネットワーク公開 (0.0.0.0バインド)**: レポートサーバーが、開発者のPC上の全てのネットワークインターフェース(`0.0.0.0`)にバインドされていました。これはつまり、ローカルネットワーク上の他のデバイスからも、あなたの開発PCで起動しているレポートサーバーにアクセスできる状態だったということです。

2. **認証なしのアクセス**: `POST /api/data/key` というエンドポイントが、認証なしでアクセス可能でした。誰でもこのエンドポイントにリクエストを送信できるため、悪意のある第三者によって容易に攻撃を受ける可能性があります。

3. **広範囲なCORS設定 (ワイルドカード)**: クロスオリジンリソース共有(CORS)がワイルドカード(`Access-Control-Allow-Origin: *`)で設定されていました。これは、あらゆるオリジンからのアクセスを許可するという意味で、悪意のあるウェブサイトからブラウザ経由であなたのPCのデータを盗むことを可能にしてしまいます。

4. **データへの直接アクセス**: 攻撃者が特定の「キー」を指定することで、ビルドツール内部のデータストアに直接アクセスできてしまいます。これにより、モジュールのソースコード、ビルド設定、ローカルファイルパス、ビルドエラーログなど、任意の機密データを簡単に引き出すことが可能でした。

これらの問題が重なることで、あなたのRspackプロジェクト内の全てのJavaScriptソースコード(APIキーや独自のビジネスロジックを含む可能性)、シリアライズされたビルド設定、ローカルファイルパス、ビルドエラーといった極めて機密性の高い情報が、外部の攻撃者や悪意のあるウェブサイトによって、あなたの特別な設定なしに容易に取得されてしまうリスクがありました。

あなたのプロジェクトは大丈夫?影響を受ける条件

この脆弱性の影響を受けるのは、主に以下の条件を満たす環境です。

1. **`@rsdoctor/rspack-plugin`のバージョンが`1.5.15`以前である。**

2. **開発者がRspackビルドを実行している(CI環境を除く)。** CI環境ではレポートサーバーは通常起動しませんが、ローカル開発環境ではデフォルトで起動します。

3. **開発者のPCがLAN、共有Wi-Fi、VPNなどのネットワークに接続されている。** この場合、同じネットワーク上の攻撃者から情報が窃取される可能性があります。

4. **悪意のあるウェブサイトを閲覧している。** CORSの脆弱性により、閲覧するだけでローカルPCの情報がクロスオリジンリクエストによって漏洩するリスクがあります。

今すぐ取るべき行動:推奨される対応策と一時的な回避策

最も効果的で推奨される対応策は、`@rsdoctor/rspack-plugin`を**バージョン`1.5.16`以降**にアップグレードすることです。以下のコマンドでアップグレードしてください。

`pnpm add -D @rsdoctor/rspack-plugin@^1.5.16`

バージョン`1.5.16`以降では、レポートサーバーはデフォルトで`127.0.0.1`(ローカルホスト)のみにバインドされるようになり、外部からの直接アクセスが遮断されます。また、CORSも`localhost`などのローカルオリジンからのアクセスのみに制限され、クロスオリジンリクエストによる情報漏洩のリスクが大幅に軽減されます。

もし何らかの理由で直ちにアップグレードできない場合は、以下の回避策を検討してください。これらは一時的な軽減策であり、セキュリティを完全に保証するものではないため、可能な限り速やかに最新バージョンへのアップグレードを実施してください。

1. **レポートサーバーを無効にする**: Rspackの設定ファイルで、`disableClientServer: true`を設定してレポートサーバーを起動しないようにします。 例: `new RsdoctorRspackPlugin({ disableClientServer: true, });`

2. **ファイアウォールの設定**: レポートサーバーが使用するポート(デフォルトは3717)への外部からのアクセスを、OSやネットワークのファイアウォールでブロックしてください。

3. **信頼できないネットワークでの作業を避ける**: 開発環境で、公共のWi-Fiなど、信頼できないネットワークを使用することは避けてください。

4. **CORS設定の見直し**: もしRspackやその他開発サーバーで`server.cors: true`や`server.cors.origin: '*'`のような、CORSを緩くする設定を行っている場合は、開発専用のオリジンに限定するなどの見直しを検討してください。

まとめ

`@rsdoctor/rspack-plugin`のこの脆弱性は、開発環境におけるセキュリティの重要性を改めて示しています。開発者が利用するツールであっても、安易な設定や旧バージョンの使用が、プロジェクト全体の機密情報を危険に晒す可能性があることを認識する必要があります。速やかに最新バージョンへのアップグレードを実施し、あなたのプロジェクトと機密情報を守りましょう。今日の行動が、未来のセキュリティリスクを回避します。

← ブログ一覧に戻る