AlmaLinux 9.2 [TuxCare] Security Update: jq / jq-devel Multiple Vulnerabilities (ALMALINUX9.2:CLSA-2026:1779123410)
| Reporter | Title | Published | Views | Family All 477 |
|---|---|---|---|---|
| CVE-2026-43894 | 11 May 202617:20 | – | attackerkb | |
| CVE-2026-40612 | 11 May 202617:16 | – | attackerkb | |
| CVE-2026-41257 | 11 May 202617:14 | – | attackerkb | |
| CVE-2026-39979 | 13 Apr 202622:18 | – | attackerkb | |
| CVE-2026-41256 | 11 May 202617:18 | – | attackerkb | |
| CVE-2026-43896 | 11 May 202617:24 | – | attackerkb | |
| CVE-2026-44777 | 11 May 202617:23 | – | attackerkb | |
| CVE-2026-43895 | 11 May 202617:24 | – | attackerkb | |
| CVE-2026-40164 | 13 Apr 202623:40 | – | attackerkb | |
| Amazon Linux 2023 : jq, jq-devel (ALAS2023-2026-1815) | 8 Jun 202600:00 | – | nessus |
10
10
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(362160);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/10/01");
script_cve_id(
"CVE-2026-39979",
"CVE-2026-40164",
"CVE-2026-40612",
"CVE-2026-41256",
"CVE-2026-41257",
"CVE-2026-43894",
"CVE-2026-43895",
"CVE-2026-43896",
"CVE-2026-44777"
);
script_xref(name:"CLSA", value:"2026:1779123410");
script_name(english:"AlmaLinux 9.2 [TuxCare] Security Update: jq / jq-devel Multiple Vulnerabilities (ALMALINUX9.2:CLSA-2026:1779123410)");
script_set_attribute(attribute:"synopsis", value:
"The AlmaLinux host is missing one or more security updates.");
script_set_attribute(attribute:"description", value:
"The AlmaLinux 9.2 host has packages installed that are affected by multiple vulnerabilities as referenced in the TuxCare
ALMALINUX9.2:CLSA-2026:1779123410 advisory.
- jq is a command-line JSON processor. In commits before 2f09060afab23fe9390cce7cb860b10416e1bf5f, the
jv_parse_sized() API in libjq accepts a counted buffer with an explicit length parameter, but its error-
handling path formats the input buffer using %s in jv_string_fmt(), which reads until a NUL terminator is
found rather than respecting the caller-supplied length. This means that when malformed JSON is passed in
a non-NUL-terminated buffer, the error construction logic performs an out-of-bounds read past the end of
the buffer. The vulnerability is reachable by any libjq consumer calling jv_parse_sized() with untrusted
input, and depending on memory layout, can result in memory disclosure or process termination. The issue
has been patched in commit 2f09060afab23fe9390cce7cb860b10416e1bf5f. (CVE-2026-39979)
- jq is a command-line JSON processor. Before commit 0c7d133c3c7e37c00b6d46b658a02244fdd3c784, jq used
MurmurHash3 with a hardcoded, publicly visible seed (0x432A9843) for all JSON object hash table
operations, which allowed an attacker to precompute key collisions offline. By supplying a crafted JSON
object (~100 KB) where all keys hashed to the same bucket, hash table lookups degraded from O(1) to O(n),
turning any jq expression into an O(n) operation and causing significant CPU exhaustion. This affected
common jq use cases such as CI/CD pipelines, web services, and data processing scripts, and was far more
practical to exploit than existing heap overflow issues since it required only a small payload. This issue
has been patched in commit 0c7d133c3c7e37c00b6d46b658a02244fdd3c784. (CVE-2026-40164)
- jq is a command-line JSON processor. In 1.8.1 and earlier, jv_contains recurses into nested arrays/objects
with no depth limit. With a sufficiently nested input structure (built programmatically with reduce, since
the JSON parser caps at depth 10000), the C stack is exhausted. (CVE-2026-40612)
- jq is a command-line JSON processor. In 1.8.1 and earlier, Top-level jq programs loaded from a file with
-f are truncated at the first embedded NUL byte on current upstream HEAD. A crafted filter file such as .
followed by \x00 and arbitrary suffix compiles and executes as only the prefix before the NUL. This leaves
jq with a post-CVE-2026-33948 prefix/full-buffer mismatch on the compilation path even though the JSON
parser path has already been fixed. (CVE-2026-41256)
- jq is a command-line JSON processor. In 1.8.1 and earlier, the jq bytecode VM's data stack tracks its
allocation size in a signed int. When the stack grows beyond 1 GiB (via deeply nested generator forks),
the doubling arithmetic overflows. The wrapped value is passed to realloc and then used for a memmove with
attacker-influenced offsets. (CVE-2026-41257)
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
# https://security.tuxcare.com/csaf/v2/els_os/almalinux9.2esu/advisories/2026/clsa-2026_1779123410.json
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?36d7667a");
script_set_attribute(attribute:"see_also", value:"https://cve.tuxcare.com/els/releases/CLSA-2026:1779123410");
script_set_attribute(attribute:"solution", value:
"Update the affected packages based on the guidance in TuxCare advisory ALMALINUX9.2:CLSA-2026:1779123410.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:P");
script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L");
script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
script_set_attribute(attribute:"cvss4_vector", value:"CVSS:4.0/AV:L/AC:H/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N");
script_set_attribute(attribute:"cvss4_threat_vector", value:"CVSS:4.0/E:P");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-39979");
script_set_attribute(attribute:"cvss4_score_source", value:"CVE-2026-41257");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"vendor_severity", value:"Important");
script_set_attribute(attribute:"vuln_publication_date", value:"2026/04/13");
script_set_attribute(attribute:"patch_publication_date", value:"2026/05/18");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/10/01");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Alma 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_info2.nasl");
script_require_keys("Host/OS/extended-third-party", "Host/local_checks_enabled", "Host/AlmaLinux/release", "Host/AlmaLinux/rpm-list", "Host/cpu");
exit(0);
}
include('rpm2.inc');
var third_party_support = get_kb_item('Host/OS/extended-third-party');
if (empty_or_null(third_party_support) || third_party_support != 'TuxCare') exit(0, 'TuxCare support not enabled.');
if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var os_product = get_kb_item('installed_os/local/SSH/0/product');
if (isnull(os_product) || 'AlmaLinux' >!< os_product) audit(AUDIT_OS_NOT, 'AlmaLinux');
var os_version = get_kb_item('installed_os/local/SSH/0/version');
if (isnull(os_version)) audit(AUDIT_UNKNOWN_APP_VER, 'AlmaLinux');
if (! preg(pattern:"^9.2([^0-9]|$)", string:os_version)) audit(AUDIT_OS_NOT, 'AlmaLinux 9.2', 'AlmaLinux ' + os_version);
if (!get_kb_item('Host/AlmaLinux/rpm-list')) audit(AUDIT_PACKAGE_LIST_MISSING);
var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if (cpu !~ "^i[3-6]86$" && 'x86_64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'AlmaLinux', cpu);
var constraints = [
{
'release': '9',
'sp': '2',
'pkgs': [
{'reference':'jq-1.6-14.el9.tuxcare.els6', 'sp':'2', 'cpu':'i686', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jq-1.6-14.el9.tuxcare.els6', 'sp':'2', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jq-devel-1.6-14.el9.tuxcare.els6', 'sp':'2', 'cpu':'i686', 'rpm_spec_vers_cmp':TRUE},
{'reference':'jq-devel-1.6-14.el9.tuxcare.els6', 'sp':'2', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE}
]
}
];
var os_release = get_one_kb_item('installed_os/local/SSH/0/release');
var os_sp = get_one_kb_item('Host/*/minor_release');
var flag = 0;
var reference;
var sp;
var _cpu;
var el_string;
var rpm_spec_vers_cmp;
var epoch;
var allowmaj;
var exists_check;
var cves;
foreach var constraint ( constraints ) {
# Check that the target release is equal to the affected release
if (!empty_or_null(constraint['release'])){
if (constraint['release'] != os_release) continue;
}
if (!empty_or_null(constraint['sp'])){
if (constraint['sp'] != os_sp) continue;
}
foreach var pkg ( constraint['pkgs'] ) {
reference = NULL;
sp = NULL;
_cpu = NULL;
el_string = NULL;
rpm_spec_vers_cmp = NULL;
epoch = NULL;
allowmaj = NULL;
exists_check = NULL;
cves = NULL;
if (!empty_or_null(pkg['reference'])) reference = pkg['reference'];
if (!empty_or_null(pkg['sp'])) sp = pkg['sp'];
if (!empty_or_null(pkg['cpu'])) _cpu = pkg['cpu'];
if (!empty_or_null(pkg['el_string'])) el_string = pkg['el_string'];
if (!empty_or_null(pkg['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = pkg['rpm_spec_vers_cmp'];
if (!empty_or_null(pkg['epoch'])) epoch = pkg['epoch'];
if (!empty_or_null(pkg['allowmaj'])) allowmaj = pkg['allowmaj'];
if (!empty_or_null(pkg['exists_check'])) exists_check = pkg['exists_check'];
if (!empty_or_null(pkg['cves'])) cves = pkg['cves'];
if (reference &&
## (no known rpm to check OR known rpm_exists)
(!exists_check || rpm_exists(rpm:exists_check)) &&
rpm_check(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_WARNING,
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, 'jq / jq-devel');
}
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
01 Oct 2026 00:00Current
7High risk
Vulners AI Score7
CVSS 3.16.5 - 8.2
CVSS 47.3
EPSS0.00824
SSVC