Heap-based Buffer Overflow Affecting electron package, versions >=22.0.0 <22.3.24 >=24.0.0 <24.8.3 >=25.0.0 <25.8.1 >=26.0.0 <26.2.1 >=27.0.0-beta.1 <27.0.0-beta.2
Threat Intelligence
Do your applications use this vulnerable package?
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applications- Snyk ID SNYK-JS-ELECTRON-5892810
- published 12 Sep 2023
- disclosed 11 Sep 2023
- credit Apple SEAR, The Citizen Lab
Introduced: 11 Sep 2023
CVE-2023-4863 Open this link in a new tabHow to fix?
Upgrade electron
to version 22.3.24, 24.8.3, 25.8.1, 26.2.1, 27.0.0-beta.2 or higher.
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Heap-based Buffer Overflow when the ReadHuffmanCodes()
function is used. An attacker can craft a special WebP
lossless file that triggers the ReadHuffmanCodes()
function to allocate the HuffmanCode buffer with a size that comes from an array of precomputed sizes: kTableSize
. The color_cache_bits
value defines which size to use. The kTableSize
array only takes into account sizes for 8-bit first-level table lookups but not second-level table lookups. libwebp allows codes that are up to 15-bit (MAX_ALLOWED_CODE_LENGTH
). When BuildHuffmanTable() attempts to fill the second-level tables it may write data out-of-bounds. The OOB write to the undersized array happens in ReplicateValue.
Notes:
This is only exploitable if the color_cache_bits
value defines which size to use.
This vulnerability was also published on libwebp CVE-2023-5129
Changelog:
2023-09-12: Initial advisory publication
2023-09-27: Advisory details updated, including CVSS, references
2023-09-27: CVE-2023-5129 rejected as a duplicate of CVE-2023-4863
2023-09-28: Research and addition of additional affected libraries
2024-01-28: Additional fix information