Packages / electron / Security
Electron: Context Isolation bypass via contextBridge VideoFrame transfer
Affected releases · electron
- 40.x40.0.0 – 40.6.1Fixed in 40.7.0
- 39.x39.0.0 – 39.7.0Fixed in 39.8.0
On 40.x, the newest line:
npm install electron@40.7.0Not affected
45.0.0
1 release, latest
Affected
40.0.0 – 40.6.1
9 releases
Fixed
40.7.0 – 40.10.6
17 releases
Affected
39.0.0 – 39.7.0
20 releases
Fixed
39.8.0 – 39.8.10
11 releases
Is your project affected?
Paste your package.json, or type the range you declare for electron. It is read in your browser and sent nowhere.
What happens
Impact
Apps that pass VideoFrame objects (from the WebCodecs API) across the contextBridge are vulnerable to a context isolation bypass. An attacker who can execute JavaScript in the main world (for example, via XSS) can use a bridged VideoFrame to gain access to the isolated world, including any Node.js APIs exposed to the preload script.
Apps are only affected if a preload script returns, resolves, or passes a VideoFrame object to the main world via contextBridge.exposeInMainWorld(). Apps that do not bridge VideoFrame objects are not affected.
Workarounds
Do not pass VideoFrame objects across contextBridge. If an app needs to transfer video frame data, serialize it to an ArrayBuffer or ImageBitmap before bridging.
Fixed Versions
41.0.0-beta.840.7.039.8.0
For more information
If there are any questions or comments about this advisory, please email security@electronjs.org