Modern Frontend CVEs

対象CVE: CVE-2026-49143

[緊急解説] BrowserStack Runnerにおける深刻なRCE脆弱性 (GHSA-6vr3-7wcx-v5g5 / CVE-2026-49143)

BrowserStack Runnerに、開発者のPCがリモートから乗っ取られる可能性のある重大な脆弱性が発見されました。Node.jsの`vm`モジュールと`eval()`の危険な組み合わせが悪用されることで、攻撃者が任意のコードを実行できるRCE (Remote Code Execution) 攻撃に繋がる可能性があります。

はじめに:BrowserStack Runnerの深刻な脆弱性について

日本のフロントエンドエンジニアの皆さん、こんにちは。今回は、皆さんのテストワークフローで利用する可能性のあるBrowserStack Runnerに発見された、非常に深刻な脆弱性「GHSA-6vr3-7wcx-v5g5 / CVE-2026-49143」について解説します。この脆弱性は、開発者のPCが外部からリモートで乗っ取られる(RCE: Remote Code Execution)危険性をはらんでおり、速やかな対応が求められます。

脆弱性の概要:Node.jsの危険な組み合わせ

BrowserStack Runnerは、テストを実行するために一時的なHTTPサーバーを起動します。このサーバーには、`/_log`という特定のURLパスを処理するハンドラーが存在します。問題は、この`_log`ハンドラーが、外部から認証なしで送られてくるデータを、Node.jsの`vm.runInNewContext()`と`eval()`という非常に危険な組み合わせで処理していた点にあります。

Node.jsの`vm`モジュールは、コードを隔離された「サンドボックス」環境で実行するためのものとして設計されていますが、重要な点として**セキュリティ機能としては設計されていません**。そのため、`eval()`と組み合わされることで、攻撃者はこのサンドボックスを容易に突破し、開発者のPC上で任意のコードを勝手に実行できてしまうのです。

さらに、他のリクエスト処理とは異なり、`_log`ハンドラーには認証の仕組みが一切ありません。これにより、誰でもこの脆弱性を悪用できてしまう状況でした。

想定される攻撃シナリオと影響

この脆弱性が悪用された場合、具体的にどのようなリスクがあるのでしょうか?

今すぐ実施すべき対策

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

まとめ:開発環境のセキュリティ再確認を

今回の脆弱性は、開発ツールやCI/CD環境におけるセキュリティの重要性を改めて浮き彫りにしました。特に`eval()`や`vm`モジュールのような機能は、安易に外部入力を処理するために使用すると非常に危険です。日頃から利用しているツールやライブラリのセキュリティ情報にも注意を払い、開発環境全体の安全性を確保するように心がけましょう。もしBrowserStack Runnerを利用されている場合は、速やかに上記の対策を検討・実施してください。

← ブログ一覧に戻る