Amazon Linux 2023 : cjose, cjose-devel (ALAS2023-2026-3130)
| Reporter | Title | Published | Views | Family All 63 |
|---|---|---|---|---|
| cjose -- Heap-based Buffer Overflow | 8 Sep 202600:00 | – | freebsd | |
| cjose -- Use of Hard-coded Cryptographic Key | 8 Sep 202600:00 | – | freebsd | |
| Important: cjose | 29 Sep 202600:00 | – | amazon | |
| CVE-2026-53938 | 9 Sep 202601:00 | – | circl | |
| CVE-2026-53939 | 9 Sep 202601:00 | – | circl | |
| CVE-2026-53938 | 8 Sep 202623:25 | – | cve | |
| CVE-2026-53939 | 8 Sep 202623:36 | – | cve | |
| CVE-2026-53938 OpenIDC/cjose has a heap buffer overflow in AES Key Wrap decryption (A128KW/A192KW/A256KW) | 8 Sep 202623:25 | – | cvelist | |
| CVE-2026-53939 OpenIDC/cjose uses all-zero Content Encryption Key for AES-CBC-HMAC JWE encryption | 8 Sep 202623:36 | – | cvelist | |
| [SECURITY] [DSA 6499-1] cjose security update | 15 Sep 202619:47 | – | debian |
10
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Amazon Linux 2023 Security Advisory ALAS2023-2026-3130.
##
include('compat.inc');
if (description)
{
script_id(351025);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/09/29");
script_cve_id("CVE-2026-53938", "CVE-2026-53939");
script_name(english:"Amazon Linux 2023 : cjose, cjose-devel (ALAS2023-2026-3130)");
script_set_attribute(attribute:"synopsis", value:
"The remote Amazon Linux 2023 host is missing a security update.");
script_set_attribute(attribute:"description", value:
"It is, therefore, affected by multiple vulnerabilities as referenced in the ALAS2023-2026-3130 advisory.
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. (CVE-2026-53938)
OpenIDC/cjose is a C library implementing the Javascript Object Signing and Encryption (JOSE). In versions
0.6.1 through 0.6.2.5, when cjose encrypts a JWE using an AES-CBC-HMAC content-encryption algorithm
(`A128CBC-HS256`, `A192CBC-HS384`, or `A256CBC-HS512`) together with any key-management algorithm that
generates a fresh content-encryption key (CEK), the CEK is all zero bytes instead of being randomly
generated. The resulting JWE is therefore encrypted and authenticated under a fixed, publicly known key,
so anyone who obtains the JWE can recover the plaintext and forge or modify the content. This is fixed in
version 0.6.2.6 by `_cjose_jwe_set_cek_aes_cbc()` generating the CEK from `RAND_bytes`. A regression test
asserts that the `encrypted_key` differs across two encryptions for each AES-CBC-HMAC variant. Until
upgrading, for data encrypted with cjose, three options are available. Use an AES-GCM `enc` (`A128GCM` /
`A192GCM` / `A256GCM`) instead of an AES-CBC-HMAC `enc`, use `alg=dir` with a caller-supplied CEK, or
avoid using cjose for JWE encryption with the affected algorithm pair. These are mitigations for new
ciphertexts only; data already encrypted under the zero key remains compromised and should be re-encrypted
(and any secrets it contained rotated). (CVE-2026-53939)
Tenable has extracted the preceding description block directly from the tested product security advisory.
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"see_also", value:"https://alas.aws.amazon.com//AL2023/ALAS2023-2026-3130.html");
script_set_attribute(attribute:"see_also", value:"https://alas.aws.amazon.com/faqs.html");
script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-53938.html");
script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-53939.html");
script_set_attribute(attribute:"solution", value:
"Run 'dnf update cjose --releasever 2023.12.20260928' or
or 'dnf update --advisory ALAS2023-2026-3130 --releasever 2023.12.20260928' to update your system.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:N");
script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-53939");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"exploit_available", value:"false");
script_set_attribute(attribute:"vuln_publication_date", value:"2026/09/08");
script_set_attribute(attribute:"patch_publication_date", value:"2026/09/29");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/09/29");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:cjose");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:cjose-debuginfo");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:cjose-debugsource");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:cjose-devel");
script_set_attribute(attribute:"cpe", value:"cpe:/o:amazon:linux:2023");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Amazon Linux Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2026 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/AmazonLinux/release", "Host/AmazonLinux/rpm-list");
exit(0);
}
include("rpm2.inc");
if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var alas_release = get_kb_item("Host/AmazonLinux/release");
if (isnull(alas_release) || !strlen(alas_release)) audit(AUDIT_OS_NOT, "Amazon Linux");
var os_ver = pregmatch(pattern: "^AL(A|\d+|-\d+)", string:alas_release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Amazon Linux");
os_ver = os_ver[1];
if (os_ver != "-2023")
{
if (os_ver == 'A') os_ver = 'AMI';
audit(AUDIT_OS_NOT, "Amazon Linux 2023", "Amazon Linux " + os_ver);
}
if (!get_kb_item("Host/AmazonLinux/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
var pkgs = [
{'reference':'cjose-0.6.2.2-7.amzn2023', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
{'reference':'cjose-0.6.2.2-7.amzn2023', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
{'reference':'cjose-debuginfo-0.6.2.2-7.amzn2023', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
{'reference':'cjose-debuginfo-0.6.2.2-7.amzn2023', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
{'reference':'cjose-debugsource-0.6.2.2-7.amzn2023', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
{'reference':'cjose-debugsource-0.6.2.2-7.amzn2023', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
{'reference':'cjose-devel-0.6.2.2-7.amzn2023', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
{'reference':'cjose-devel-0.6.2.2-7.amzn2023', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE}
];
var flag = 0;
foreach var package_array ( pkgs ) {
var reference = NULL;
var _release = NULL;
var sp = NULL;
var _cpu = NULL;
var el_string = NULL;
var rpm_spec_vers_cmp = NULL;
var epoch = NULL;
var allowmaj = NULL;
var exists_check = NULL;
var cves = NULL;
if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
if (!empty_or_null(package_array['release'])) _release = package_array['release'];
if (!empty_or_null(package_array['sp'])) sp = package_array['sp'];
if (!empty_or_null(package_array['cpu'])) _cpu = package_array['cpu'];
if (!empty_or_null(package_array['el_string'])) el_string = package_array['el_string'];
if (!empty_or_null(package_array['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = package_array['rpm_spec_vers_cmp'];
if (!empty_or_null(package_array['epoch'])) epoch = package_array['epoch'];
if (!empty_or_null(package_array['allowmaj'])) allowmaj = package_array['allowmaj'];
if (!empty_or_null(package_array['exists_check'])) exists_check = package_array['exists_check'];
if (!empty_or_null(package_array['cves'])) cves = package_array['cves'];
if (reference && _release && (!exists_check || rpm_exists(release:_release, rpm:exists_check))) {
if (rpm_check(release:_release, sp:sp, cpu:_cpu, reference:reference, epoch:epoch, el_string:el_string, rpm_spec_vers_cmp:rpm_spec_vers_cmp, allowmaj:allowmaj, cves:cves)) flag++;
}
}
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_HOLE,
extra : rpm_report_get()
);
exit(0);
}
else
{
var tested = pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, "cjose / cjose-debuginfo / cjose-debugsource / etc");
}
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
29 Sep 2026 00:00Current
6Medium risk
Vulners AI Score6
CVSS 3.19.1
EPSS0.00245
SSVC