JFrog(ジェイフロッグ)のセキュリティーリサーチチームは、広く利用されている@react-native-community/cli NPMパッケージに重大なセキュリティー脆弱性(CVE-2025-11953)を発見した。毎週約200万回ダウンロードされているこのパッケージは、React Native Community CLIプロジェクトの一部だ。この脆弱性により、認証されていないリモートの攻撃者が、react-native-community/cliの開発サーバーを実行しているマシン上で任意のOSコマンドを実行できる可能性があり、開発者にとって重大なリスクとなる。
React Nativeは、JavaScriptを使ってクロスプラットフォームのモバイルアプリを構築するための人気のフレームワークだ。今回の脆弱性は、保守性を向上させるために数年前にReact Nativeのコアコードベースから抽出されたパッケージに存在する。CLIは、開発者がReact Nativeモバイルアプリを構築するのを支援するコマンドラインツールのコレクションだ。フレームワークを使用せずにReact Nativeモバイルアプリを作成するために公式に使用されているほか、React Native for Windows、React Native for macOSなどにも使用されている。
開発サーバーの一般的な脆弱性は開発者のローカルマシンからのみ悪用可能だが、チームがReact Nativeのコアコードベースで発見した2つ目のセキュリティー問題は、開発サーバーを外部ネットワーク攻撃にさらすものであり、前述の脆弱性を極めて深刻な問題にしている。この脆弱性は、バージョン4.8.0から20.0.0-alpha.2までの@react-native-community/cli-server-apiパッケージに直接影響し、バージョン20.0.0以降で修正されている。
脆弱なバージョンの@react-native-community/cliを使ってReact Nativeプロジェクトを開始し、以下のコマンドまたは類似のコマンドを使ってMetro開発サーバーを実行する開発者は、CVE-2025-11953の脆弱性を負う。ただし、このライブラリーを依存関係としてインストールしている全ての開発者が必ずしも脆弱であるとは限らないことを理解することが重要だ。具体的には、開発サーバーとしてMetroを使用しないフレームワークでReact Nativeを使う開発者は、通常、脆弱性の影響を受けない。
この脆弱性は、各react-nativeプロジェクトにおいて、@react-native-community/cli-server-apiをバージョン20.0.0以上にアップデートすることで軽減できる。このバージョンには、この脆弱性に対する修正が含まれている。セキュリティー強化のため、またはアップグレードが不可能な場合は、「–host 127.0.0.1」フラグを指定して、開発サーバーをlocalhostインターフェイスに明示的にバインドする必要がある。
この脆弱性は、簡単に悪用される可能性のあるこれらの欠陥が本番環境に到達する前に防止するためには、安全なコーディングプラクティスと自動セキュリティースキャンが不可欠であることを改めて認識させてくれる。JFrog Advanced SecurityのSASTスキャンにより、開発者は開発プロセスの早い段階でセキュリティー問題を特定し、修正できる。JFrog SASTは設定を一切必要とせず、統合開発環境プラグインやコマンドラインインターフェイスツールを通じて既存のワークフローにシームレスに統合されるため、開発者はフローを中断することなく、実用的な発見事項に簡単にアクセスできる。
出典:JFrog
この製品の詳細については、JFrog製品ページをご覧ください。