Modern Frontend CVEs

対象CVE: CVE-2026-70601

[緊急解説] Electronのコンテキスト分離バイパス脆弱性 (CVE-2026-70601) について

Electronアプリケーションにおいて、`contextBridge`を介してPromiseを返す関数を公開していると、コンテキスト分離がバイパスされ、未信頼のWebコンテンツが隔離されたプリロードスクリプト環境にアクセスできる高深刻度の脆弱性が発見されました。唯一の対策はElectronのバージョンアップです。

はじめに

Electron開発者の皆さん、こんにちは。今回は、Electronアプリケーションに影響を与える高深刻度のセキュリティ脆弱性(GHSA-h7rp-cf8h-j98x / CVE-2026-70601)について解説します。この脆弱性は、特定の条件下でコンテキスト分離 (Context Isolation) がバイパスされ、攻撃者が隔離されたプリロードスクリプト環境にアクセスできてしまうというものです。ご自身のアプリケーションが影響を受ける可能性があるか確認し、早急な対策を検討してください。

脆弱性概要 (GHSA-h7rp-cf8h-j98x / CVE-2026-70601)

この脆弱性は、「Electron: Context isolation bypass via Function.prototype.bind hijack」と名付けられています。`Function.prototype.bind`の悪用により、`contextBridge`を介してWebコンテンツに公開されたPromiseを返す関数を通じて、本来隔離されているはずのプリロードスクリプトのコンテキストに未信頼のWebコンテンツからアクセスできてしまう問題です。深刻度は「高 (High)」と評価されています。

具体的な影響と攻撃経路

この脆弱性が影響を与えるのは、以下の2つの条件を「両方」満たすElectronアプリケーションです。

1. `contextBridge`を介して「Promiseを返す関数」をWebコンテンツに公開している。

2. そのウィンドウで「未信頼のコンテンツ」(例:ユーザーがアップロードしたHTML/JavaScript、外部の広告スクリプト、iframeなど)をロードしている。

攻撃者は、Webコンテンツ側から`Function.prototype.bind`を悪用し、`contextBridge`で公開されたPromiseを返す関数を通じて、隔離されたプリロードスクリプトのコンテキストにアクセスします。プリロードスクリプトはNode.js環境にアクセスできるため、このバイパスが成功すると、攻撃者はプリロードスクリプトが持つ全ての権限(例えば、ファイルシステムへのアクセスやOSコマンドの実行など)を行使できるようになります。

特に、サンドボックスが無効なレンダラープロセスや、`nodeIntegration`が有効なレンダラープロセスでは、この脆弱性がNode.jsの全機能へのアクセスにエスカレートする可能性があり、非常に深刻な結果を招く恐れがあります。

あなたのアプリケーションは大丈夫? - 影響範囲の確認

`ipcRenderer.invoke`を`contextBridge`でラップしてWebコンテンツに公開するパターンは一般的であり、これはPromiseを返すため、多くのElectronアプリが対象となる可能性があります。もしあなたのアプリが、ユーザー入力や外部ソースからのコンテンツをレンダリングするウィンドウで、`contextBridge`経由でPromiseを返す関数を公開している場合、この脆弱性の影響を受ける可能性があります。

一方、未信頼のコンテンツを一切ロードしないElectronアプリであれば、この脆弱性の直接的な影響は受けません。

対策と対応方法

残念ながら、この脆弱性に対するアプリケーション側のワークアラウンド(一時的な回避策)は存在しません。唯一かつ最も確実な対策は、**Electronを脆弱性が修正されたバージョンにアップデートすること**です。

修正済みバージョンは以下の通りです。

- `42.0.0-beta.5` 以降

- `41.2.2` 以降

- `40.9.2` 以降

- `39.8.9` 以降

現在利用しているElectronのバージョンを確認し、上記のいずれかのバージョン、またはそれ以降の安定版へ速やかにアップデートしてください。

まとめ

今回解説したElectronのコンテキスト分離バイパス脆弱性は、`contextBridge`の利用方法によっては重大なセキュリティリスクをもたらします。Electronアプリを開発・運用されている日本のフロントエンドエンジニアの皆さんは、ご自身のアプリケーションが影響を受けるかどうかを確認し、速やかにElectronのバージョンアップを実施してください。セキュリティは常に最新の状態を保つことが重要です。

このアドバイザリに関する詳細な質問がある場合は、[security@electronjs.org](mailto:security@electronjs.org) までメールで問い合わせてください。

← ブログ一覧に戻る