CVE-2023-29198 Context isolation bypass via nested unserializable return value in Electron

Medium 6.0 Published Updated

Attackers can bypass context isolation in Electron apps to perform privileged actions if exposed APIs return unserializable objects.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2023-29198?

CVE-2023-29198 is a medium-severity vulnerability in Electronjs Electron, published on 6 Sep 2023. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

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`.

Weakness: CWE-754

Which versions are affected by CVE-2023-29198?

8 open source packages ship an affected version, including electron. It affects 1 product.

PackageAffectedFixed in
electron npmAll versions22.3.6
electron npmAll versions22.3.6
electron npmFrom 23.0.0-alpha.123.2.3
electron npmFrom 23.0.0-alpha.123.2.3
electron npmFrom 24.0.0-alpha.124.0.1
electron npmFrom 24.0.0-alpha.124.0.1
2 more packages
electron npmFrom 25.0.0-alpha.125.0.0-alpha.2
electron npmFrom 25.0.0-alpha.125.0.0-alpha.2

Products include Electronjs Electron.

How do I fix CVE-2023-29198?

Upgrade electron to a fixed version for your release line: 22.3.6, 23.2.3, 24.0.1 or 25.0.0-alpha.2.

Is CVE-2023-29198 being exploited?

There is no known exploitation of CVE-2023-29198 in the wild and no public exploit code.

All Electronjs Electron vulnerabilities

Sources

Also known as GHSA-p7v2-p9m8-qqg7.

Is CVE-2023-29198 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free