プラットフォーム
nodejs
コンポーネント
electron
修正版
38.8.7
39.0.1
40.0.1
41.0.1
38.8.6
CVE-2026-34773は、electronのapp.setAsDefaultProtocolClient(protocol)関数における脆弱性で、Windows環境において、プロトコル名の検証が不十分なために発生します。この脆弱性を悪用されると、攻撃者が任意のレジストリキーを書き換え、既存のプロトコルハンドラを乗っ取る可能性があります。影響を受けるのは、外部からの入力に基づいてプロトコル名を決定するアプリケーションです。この問題はバージョン38.8.6で修正されました。
ElectronのCVE-2026-34773は、Windows上でapp.setAsDefaultProtocolClient(protocol)を使用するアプリケーションに影響を与えます。問題は、関数がWindowsレジストリに書き込む前にプロトコルの名前を適切に検証しないことにあります。これにより、攻撃者はアプリケーションが信頼できないソースからプロトコルの名前を受け入れる場合、HKCU\Software\Classes\の下の任意のサブキーに書き込むことができます。この書き込みにより、既存のプロトコルハンドラを乗っ取ることが可能になり、特定のプロトコルでリンクを開こうとすると、悪意のあるコードが実行されたり、ユーザーが望ましくないWebサイトにリダイレクトされたりする可能性があります。この脆弱性は、プロトコルの名前が外部または信頼できない入力から派生している場合にのみ関連します。
攻撃者は、特別に設計されたプロトコルの名前を使用する悪意のあるリンクを作成することで、この脆弱性を悪用する可能性があります。脆弱なアプリケーションがこのプロトコルをデフォルトクライアントとして登録しようとすると、攻撃者はWindowsレジストリに書き込み、潜在的にシステム構成を損なう可能性があります。悪用の成功は、攻撃者がアプリケーションを検証されていないプロトコルの名前を使用するように騙す能力に依存します。悪用の複雑さは、アプリケーションのアーキテクチャと既存のセキュリティ対策によって異なる場合があります。
エクスプロイト状況
EPSS
0.03% (9% パーセンタイル)
CISA SSVC
CVE-2026-34773を軽減するには、Electronをバージョン38.8.6以降に更新してください。このバージョンには、Windowsレジストリに書き込む前にプロトコルの名前を適切に検証する機能が含まれています。直ちに更新できない場合は、app.setAsDefaultProtocolClient()に渡す前に、ユーザーが提供するプロトコルの名前を徹底的に検証することをお勧めします。堅牢な検証には、許可されたプロトコルのホワイトリストを含め、このリストと一致しない入力はすべて拒否する必要があります。さらに、アプリケーションのコードを調べて、外部ソースからのデータを使用してapp.setAsDefaultProtocolClient()を使用しているインスタンスがないか確認し、必要な検証を適用してください。
Actualice Electron a la versión 38.8.6, 39.8.1, 40.8.1 o 41.0.0 o superior. Asegúrese de que el nombre del protocolo utilizado en `app.setAsDefaultProtocolClient()` se derive de una fuente segura y no de entrada proporcionada por el usuario para evitar la inyección de claves de registro.
脆弱性分析と重要アラートをメールでお届けします。
Electronは、HTML、CSS、JavaScriptなどのWebテクノロジーを使用してクロスプラットフォームのデスクトップアプリケーションを構築するためのフレームワークです。
アプリケーションで使用しているElectronのバージョンを確認してください。バージョン38.8.6未満の場合は、脆弱です。また、コードを調べて、app.setAsDefaultProtocolClient()の外部データを使用した箇所がないか確認してください。
これは、プロトコルとそれに関連付けられたハンドラに関する情報を格納するWindowsレジストリキーです。このキーの操作は、システムの動作に影響を与える可能性があります。
目的の機能に応じて、代替手段が存在する場合があります。代替アプローチのセキュリティ上の影響を慎重に検討してください。
app.setAsDefaultProtocolClient()に渡す前に、プロトコルの名前を徹底的に検証してください。許可されたプロトコルのホワイトリストを使用してください。
CVSS ベクトル