CVE-2026-1837: libjxl: Out-of-bounds write in grayscale color transformation when using LCMS2
A specially-crafted file can cause libjxl's decoder to write pixel data to uninitialized unallocated memory. Soon after that data from another uninitialized unallocated region is copied to pixel data.
This can be done by requesting color transformation of grayscale images to another grayscale color space. Buffers allocated for 1-float-per-pixel are used as if they are allocated for 3-float-per-pixel. That happens only if LCMS2 is used as CMS engine. There is another CMS engine available (selected by build flags).
Other sources
Accelerate. An out-of-bounds read was addressed with improved bounds checking.
— Apple
Accounts. A permissions issue was addressed with additional restrictions.
— Apple
APFS. A buffer overflow was addressed with improved bounds checking.
— Apple
App Intents. A logic issue was addressed with improved restrictions.
— Apple
AppleJPEG. This is a vulnerability in open source code and Apple Software is among the affected projects. The CVE-ID was assigned by a third party. Learn more about the issue and CVE-ID at cve.org.
— Apple
Credit
Affected Software
Remediation
Patch Available
Event History
Parent advisories
This vulnerability appears in the following advisories.
Peer vulnerabilities
Found alongside the following vulnerabilities.
- CVE-2026-28991
- CVE-2026-28988
- CVE-2026-28959
- CVE-2026-28995
- CVE-2026-1837
- CVE-2026-28956
- CVE-2026-39869
- CVE-2026-28922
- CVE-2026-28936
- CVE-2026-28918
- CVE-2026-28915
- CVE-2026-43659
- CVE-2026-28923
- CVE-2026-28925
- CVE-2026-43661
- CVE-2026-28977
- CVE-2026-28990
- CVE-2026-28978
- CVE-2026-28992
- CVE-2026-28943
- CVE-2026-28969
- CVE-2026-43655
- CVE-2026-43654
- CVE-2026-28908
- CVE-2026-28954
- CVE-2026-28897
- CVE-2026-28952
- CVE-2026-28951
- CVE-2026-28972
- CVE-2026-28986
- CVE-2026-28987
- CVE-2026-28983
- CVE-2026-28929
- CVE-2026-43653
- CVE-2026-28985
- CVE-2026-43668
- CVE-2026-43666
- CVE-2026-28941
- CVE-2026-28940
- CVE-2026-28961
- CVE-2026-28906
- CVE-2026-43656
- CVE-2026-43652
- CVE-2026-39870
- CVE-2026-28846
- CVE-2026-28993
- CVE-2026-28848
- CVE-2026-28930
- CVE-2026-28974
- CVE-2026-28996
- CVE-2026-28919
- CVE-2026-28924
- CVE-2026-39871
- CVE-2026-28976
- CVE-2026-43660
- CVE-2026-28907
- CVE-2026-28962
- CVE-2026-43658
- CVE-2026-28905
- CVE-2026-28847
- CVE-2026-28904
- CVE-2026-28955
- CVE-2026-28903
- CVE-2026-28953
- CVE-2026-28902
- CVE-2026-28901
- CVE-2026-28913
- CVE-2026-28883
- CVE-2026-28958
- CVE-2026-28917
- CVE-2026-28947
- CVE-2026-28946
- CVE-2026-28942
- CVE-2026-28971
- CVE-2026-28944
- CVE-2026-28819
- CVE-2026-28994
- CVE-2026-28914
- CVE-2026-28920
- CVE-2026-28964
- CVE-2026-28963
- CVE-2026-28957
- CVE-2026-28965
Frequently Asked Questions
What is the severity of CVE-2026-1837?
CVE-2026-1837 has been classified as a high-severity vulnerability due to its potential to cause out-of-bounds write issues.
How do I fix CVE-2026-1837?
To mitigate CVE-2026-1837, update to the latest version of libjxl where the vulnerability has been addressed.
What impact does CVE-2026-1837 have on affected systems?
CVE-2026-1837 can lead to the execution of arbitrary code or data corruption due to uninitialized memory accesses.
What versions of libjxl are affected by CVE-2026-1837?
CVE-2026-1837 affects all versions of libjxl prior to the patch that addresses this vulnerability.
Is there a workaround for CVE-2026-1837?
Currently, the best approach is to apply the security patch provided for CVE-2026-1837 as no reliable workaround exists.