CVE-2026-53938 OpenIDC/cjose has a heap buffer overflow in AES Key Wrap decryption (A128KW/A192KW/A256KW)
A remote attacker can trigger a heap buffer overflow in the cjose library via crafted JWE messages, causing crashes or potential code execution.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-53938?
CVE-2026-53938 is a high-severity memory corruption vulnerability in OpenIDC cjose, published on 8 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
OpenIDC/cjose is a C library implementing the Javascript Object Signing and Encryption (JOSE). Prior to version 0.6.2.5, cjose's JWE decryption path for the AES Key Wrap key-management algorithms (`alg` = `A128KW`, `A192KW`, `A256KW`) does not validate the length of the attacker-supplied `encrypted_key` (JWE Encrypted Key) before unwrapping it into a fixed-size, heap-allocated Content Encryption Key (CEK) buffer. A remote, unauthenticated attacker who can submit a crafted JWE to an application that decrypts it with an AES-KW symmetric key can trigger an out-of-bounds heap write, corrupting the heap. This leads at minimum to a crash (denial of service) and, depending on the heap layout and allocator, may be leverageable for further memory-corruption impact. `cjose_jwe_import()` / `cjose_jwe_decrypt()` are pre-authentication entry points: they parse and process fully attacker-controlled input. Upgrade to cjose 0.6.2.5 to receive a patch. If upgrading is not immediately possible, reject the AES Key Wrap algorithms (`A128KW`/`A192KW`/`A256KW`) for untrusted JWEs at the application layer.
Which versions are affected by CVE-2026-53938?
Linux distribution packages (40)
cjose AlmaLinux:10 | All versions | 0.6.2.2-7.el10_2.1 |
cjose-devel AlmaLinux:10 | All versions | 0.6.2.2-7.el10_2.1 |
cjose AlmaLinux:9 | All versions | 0.6.1-17.el9_8.1 |
cjose-devel AlmaLinux:9 | All versions | 0.6.1-17.el9_8.1 |
cjose Red Hat:enterprise_linux:10.2 | All versions | 0:0.6.2.2-7.el10_2.1 |
cjose-debuginfo Red Hat:enterprise_linux:10.2 | All versions | 0:0.6.2.2-7.el10_2.1 |
cjose-debugsource Red Hat:enterprise_linux:10.2 | All versions | 0:0.6.2.2-7.el10_2.1 |
cjose-devel Red Hat:enterprise_linux:10.2 | All versions | 0:0.6.2.2-7.el10_2.1 |
cjose Red Hat:enterprise_linux_eus:10.0 | All versions | 0:0.6.2.2-7.el10_0.1 |
cjose-debuginfo Red Hat:enterprise_linux_eus:10.0 | All versions | 0:0.6.2.2-7.el10_0.1 |
cjose-debugsource Red Hat:enterprise_linux_eus:10.0 | All versions | 0:0.6.2.2-7.el10_0.1 |
cjose-devel Red Hat:enterprise_linux_eus:10.0 | All versions | 0:0.6.2.2-7.el10_0.1 |
cjose Red Hat:rhel_aus:8.4::appstream | All versions | 0:0.6.1-3.module+el8.4.0+24972+63eee48e.1 |
cjose-debuginfo Red Hat:rhel_aus:8.4::appstream | All versions | 0:0.6.1-3.module+el8.4.0+24972+63eee48e.1 |
cjose-debugsource Red Hat:rhel_aus:8.4::appstream | All versions | 0:0.6.1-3.module+el8.4.0+24972+63eee48e.1 |
cjose-devel Red Hat:rhel_aus:8.4::appstream | All versions | 0:0.6.1-3.module+el8.4.0+24972+63eee48e.1 |
mod_auth_openidc Red Hat:rhel_aus:8.4::appstream | All versions | 0:2.4.9.4-1.module+el8.4.0+24868+593d10ef.3 |
mod_auth_openidc-debuginfo Red Hat:rhel_aus:8.4::appstream | All versions | 0:2.4.9.4-1.module+el8.4.0+24868+593d10ef.3 |
mod_auth_openidc-debugsource Red Hat:rhel_aus:8.4::appstream | All versions | 0:2.4.9.4-1.module+el8.4.0+24868+593d10ef.3 |
cjose Red Hat:rhel_aus:8.6::appstream | All versions | 0:0.6.1-3.module+el8.6.0+24971+334c209b.1 |
cjose-debuginfo Red Hat:rhel_aus:8.6::appstream | All versions | 0:0.6.1-3.module+el8.6.0+24971+334c209b.1 |
cjose-debugsource Red Hat:rhel_aus:8.6::appstream | All versions | 0:0.6.1-3.module+el8.6.0+24971+334c209b.1 |
cjose-devel Red Hat:rhel_aus:8.6::appstream | All versions | 0:0.6.1-3.module+el8.6.0+24971+334c209b.1 |
mod_auth_openidc Red Hat:rhel_aus:8.6::appstream | All versions | 0:2.4.9.4-1.module+el8.6.0+24867+df0294a5.3 |
mod_auth_openidc-debuginfo Red Hat:rhel_aus:8.6::appstream | All versions | 0:2.4.9.4-1.module+el8.6.0+24867+df0294a5.3 |
mod_auth_openidc-debugsource Red Hat:rhel_aus:8.6::appstream | All versions | 0:2.4.9.4-1.module+el8.6.0+24867+df0294a5.3 |
cjose Red Hat:rhel_e4s:8.8::appstream | All versions | 0:0.6.1-3.module+el8.8.0+24970+620d53ef.1 |
cjose-debuginfo Red Hat:rhel_e4s:8.8::appstream | All versions | 0:0.6.1-3.module+el8.8.0+24970+620d53ef.1 |
cjose-debugsource Red Hat:rhel_e4s:8.8::appstream | All versions | 0:0.6.1-3.module+el8.8.0+24970+620d53ef.1 |
cjose-devel Red Hat:rhel_e4s:8.8::appstream | All versions | 0:0.6.1-3.module+el8.8.0+24970+620d53ef.1 |
mod_auth_openidc Red Hat:rhel_e4s:8.8::appstream | All versions | 0:2.4.9.4-1.module+el8.8.0+24885+7d8e9f68.3 |
mod_auth_openidc-debuginfo Red Hat:rhel_e4s:8.8::appstream | All versions | 0:2.4.9.4-1.module+el8.8.0+24885+7d8e9f68.3 |
mod_auth_openidc-debugsource Red Hat:rhel_e4s:8.8::appstream | All versions | 0:2.4.9.4-1.module+el8.8.0+24885+7d8e9f68.3 |
cjose Red Hat:rhel_e4s:9.2::appstream | All versions | 0:0.6.1-13.el9_2.1 |
cjose-debuginfo Red Hat:rhel_e4s:9.2::appstream | All versions | 0:0.6.1-13.el9_2.1 |
cjose-debugsource Red Hat:rhel_e4s:9.2::appstream | All versions | 0:0.6.1-13.el9_2.1 |
cjose Red Hat:rhel_e4s:9.4::appstream | All versions | 0:0.6.1-16.el9_4.1 |
cjose-debuginfo Red Hat:rhel_e4s:9.4::appstream | All versions | 0:0.6.1-16.el9_4.1 |
cjose-debugsource Red Hat:rhel_e4s:9.4::appstream | All versions | 0:0.6.1-16.el9_4.1 |
cjose Red Hat:rhel_eus:9.6::appstream | All versions | 0:0.6.1-17.el9_6.1 |
How do I fix CVE-2026-53938?
Upgrade to a fixed version.
Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.
Is CVE-2026-53938 being exploited?
There is no known exploitation of CVE-2026-53938 in the wild and no public exploit code.
Sources
Also known as ALSA-2026:79122, ALSA-2026:90812, AZL-101093, DEBIAN-CVE-2026-53938, GHSA-75r7-f5cv-g3wj, RHSA-2026:73017 and 9 more.