CVE-2023-29198
What it is
Electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS. Electron apps using `contextIsolation` and `contextBridge` are affected. This is a context isolation bypass, meaning that code running in the main world context in the renderer can reach into the isolated Electron context and perform privileged actions. This issue is only exploitable if an API exposed to the main world via `contextBridge` can return an object or array that contains a javascript object which cannot be serialized, for instance, a canvas rendering context. This would normally result in an exception being thrown `Error: object could not be cloned`. The app side workaround is to ensure that such a case is not possible. Ensure all values returned from a function exposed over the context bridge are supported. This issue has been fixed in versions `25.0.0-alpha.2`, `24.0.1`, `23.2.3`, and `22.3.6`.
At a glance
- Exploitability
- Can be exploited over the network with a low-privilege account. Limited direct impact.
- Exploit odds
- 0.6% chance of exploitation in the next 30 days (EPSS).
- Fix
- A patch, advisory or fixed version is referenced. Upgrade or apply it.
Timeline
- PublishedDisclosed publicly on CVE.org and NVD
- Last updatedMost recent change to the record
Why it ranks here
- Exploited in the wild: no, CISA does not list it.
- Exploit odds: 0.6% in the next 30 days (EPSS).
- Severity: 6.0 MEDIUM (CVSS).
- Fix: a patch or advisory is linked.
Details
- Published
- Last modified
- Exploit probability
- 0.6% · EPSS, next 30 days
- Weakness
- CWE-754
- Record status
- Modified
Affected
- Electronjs Electron < 22.3.6
- Electronjs Electron < 23.2.3
- Electronjs Electron 24.0.0
- Electronjs Electron 25.0.0
Attack profile CVSS 3.1 · 6.0
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
- Scope
- Changed
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
Raw vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L
Is it in your code?
Hand this to your coding agent. It searches your project for the affected products and checks versions. Nothing leaves your machine.
Read https://cve-list.com/agent/cve/CVE-2023-29198.md and follow it. Check whether this project is affected by CVE-2023-29198. Read only. Don't change anything and don't upload my code. Tell me yes, no or not sure, with the file as proof.
Fix and advisories
- https://github.com/electron/electron/security/advisories/GHSA-p7v2-p9m8-qqg7
- https://github.com/electron/electron/security/advisories/GHSA-p7v2-p9m8-qqg7
References
- https://github.com/electron/electron/security/advisories/GHSA-p7v2-p9m8-qqg7
- https://www.electronjs.org/docs/latest/api/context-bridge#parameter--error--return-type-support
- https://github.com/electron/electron/security/advisories/GHSA-p7v2-p9m8-qqg7
- https://www.electronjs.org/docs/latest/api/context-bridge#parameter--error--return-type-support