CVE-2026-20884
LibRaw: LibRaw: Arbitrary code execution via integer overflow in deflate_dng_load_raw
Severity
ModerateRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · April 7, 2026
Updated · June 30, 2026
Description
A flaw was found in LibRaw. An integer overflow vulnerability in the deflate_dng_load_raw functionality allows a remote attacker to provide a specially crafted malicious file. This can lead to a heap buffer overflow, potentially resulting in arbitrary code execution.
Statement
This flaw in the LibRaw library consists in an integer overflow in the deflate_dng_load_raw() function, a successfully performed attack may lead to a heap buffer overflow and potentially arbitrary code execution or denial of service. The vulnerability stems from the usage of a 32-bit arithmetic to calculate the memory limits and the buffer allocation size for the image's tile dimension values, which may end up overflowing when processing user controlled images as input. The calculation result is further used within 64-bit boundary checking however the proper cast is missing and the result value is used to allocate the buffer from memory, when the overflow happens the function may start writing outside of the expected memory boundary leading to data corruption.
This vulnerability is not exploitable when the application consuming LibRaw is using the default memory limit (max_raw_memory_mb parameter) to unpack the RAW image. To be considered vulnerable the application should be setting the limit to around or greater then 11GB.
Red Hat Product Security has rated this vulnerability as having a Moderate impact, despite the possibility of arbitrary code execution due to the heap-based buffer overflow, as the user needs to be tricked to process a maliciously crafted image or LibRaw needs to be exposed to the network and accepting untrusted data as input. Additionally the default max_raw_memory_mb value set with LibRaw is not enough to trigger the vulnerability.
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
This vulnerability can be mitigated by limiting the amount of memory used to unpack untrusted RAW images. This needs to be set in the application using the LibRaw and can be achieved by setting the max_raw_memory_mb to a value smaller than 16GB.
This parameter can't be changed in runtime in the library, so developers needs to patch and rebuild their application to impose the new limit. It's important to notice the fact when reducing the memory limit for the decoding process may render the library unable to handle big images.
CVSS / CWE
CVSS 3.1 · 7.5CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
CWE-190 · Integer Overflow or Wraparound