Lucene search
+L

AlmaLinux 9.2 [TuxCare] Security Update: python3-unbound / unbound / unbound-devel / unbound-libs Multiple Vulnerabilities (ALMALINUX9.2:CLSA-2026:1786637650)

🗓️ 30 Sep 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 3 Views

Remote attackers can cause DoS or segmentation fault in Unbound via DNS queries or API calls.

Related
Refs
Code
ReporterTitlePublishedViews
Family
attackerkb
attackerkb
CVE-2026-46582
22 Jul 202613:07
–attackerkb
attackerkb
attackerkb
CVE-2026-50248
22 Jul 202613:08
–attackerkb
attackerkb
attackerkb
CVE-2026-44621
22 Jul 202613:06
–attackerkb
attackerkb
attackerkb
CVE-2026-44687
22 Jul 202613:06
–attackerkb
attackerkb
attackerkb
CVE-2026-56416
22 Jul 202613:10
–attackerkb
attackerkb
attackerkb
CVE-2026-55717
22 Jul 202613:09
–attackerkb
attackerkb
attackerkb
CVE-2026-55708
22 Jul 202613:09
–attackerkb
attackerkb
attackerkb
CVE-2026-50243
22 Jul 202613:08
–attackerkb
attackerkb
attackerkb
CVE-2026-44690
22 Jul 202613:06
–attackerkb
attackerkb
attackerkb
CVE-2026-50046
22 Jul 202613:08
–attackerkb
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(352033);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/09/30");

  script_cve_id(
    "CVE-2024-33655",
    "CVE-2024-43167",
    "CVE-2026-42955",
    "CVE-2026-44621",
    "CVE-2026-44687",
    "CVE-2026-44690",
    "CVE-2026-46582",
    "CVE-2026-50046",
    "CVE-2026-50243",
    "CVE-2026-50248",
    "CVE-2026-50251",
    "CVE-2026-55708",
    "CVE-2026-55717",
    "CVE-2026-56416"
  );
  script_xref(name:"CLSA", value:"2026:1786637650");

  script_name(english:"AlmaLinux 9.2 [TuxCare] Security Update: python3-unbound / unbound / unbound-devel / unbound-libs Multiple Vulnerabilities (ALMALINUX9.2:CLSA-2026:1786637650)");

  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:1786637650 advisory.

  - The DNS protocol in RFC 1035 and updates allows remote attackers to cause a denial of service (resource
    consumption) by arranging for DNS queries to be accumulated for seconds, such that responses are later
    sent in a pulsing burst (which can be considered traffic amplification in some cases), aka the DNSBomb
    issue. (CVE-2024-33655)

  - DISPUTE NOTE: this issue does not pose a security risk as it (according to analysis by the original
    software developer, NLnet Labs) falls within the expected functionality and security controls of the
    application. Red Hat has made a claim that there is a security risk within Red Hat products. NLnet Labs
    has no further information about the claim, and suggests that affected Red Hat customers refer to
    available Red Hat documentation or support channels. ORIGINAL DESCRIPTION: A NULL pointer dereference flaw
    was found in the ub_ctx_set_fwd function in Unbound. This issue could allow an attacker who can invoke
    specific sequences of API calls to cause a segmentation fault. When certain API functions such as
    ub_ctx_set_fwd and ub_ctx_resolvconf are called in a particular order, the program attempts to read from a
    NULL pointer, leading to a crash. This issue can result in a denial of service by causing the application
    to terminate unexpectedly. (CVE-2024-43167)

  - In NLnet Labs Unbound 1.16.2 up to and including 1.25.1, a similar vulnerability as with CVE-2026-40622 in
    the 'ghost domain names' family of attacks was found in Unbound that could extend the ghost domain window
    by up to one cached TTL configured value for A/AAAA glue records. Similar to other 'ghost domain names'
    attacks, an adversary needs to control a (ghost) zone and be able to query a vulnerable Unbound. A single
    client A/AAAA query can cause Unbound to overwrite the cached expired parent-side glue rrset and
    essentially extend the ghost domain window by up to one cached TTL configured value ('cache-max-ttl'). In
    configurations where 'harden-referral-path: yes' is used (non-default configuration), no client query is
    required since Unbound implicitly performs that query. This is a variant of CVE-2026-40622 which only
    addressed the NS query. (CVE-2026-42955)

  - With NLnet Labs Unbound up to and including version 1.25.1, applications using libunbound and configured
    with 'unwanted-reply-threshold', could eventually be abruptly terminated if the threshold is reached and
    libunbound needs to call 'libworker_alloc_cleanup' since the function is absent from the function call
    allow list. When an application using libunbound sets 'unwanted-reply-threshold' to any non-zero value and
    the iterator queries an authoritative that replies with enough wrong-transaction-ID UDP datagrams to cross
    the threshold, the 'libworker_alloc_cleanup' will eventually be called. Since the function is absent from
    the function call allow list, this leads to a fatal exit of libunbound and eventual termination of the
    embedding application.Unbound itself is not affected since its relevant function 'worker_alloc_cleanup' is
    registed in the allow list and proceeds to perform the documented cache flush. (CVE-2026-44621)

  - In NLnet Labs Unbound 1.13.2 up to and including 1.25.1, stub or forward zones where the name is below an
    intermediate labed below a DNSSEC signed zone could be shadowed by the intermediate label's secure
    NXDOMAIN answer from the parent. This is caused by an off-by-one error in 'harden-below-nxdomain' logic;
    enabled by default. It effectively bypasses the configuration and the configured stub/forward zone is
    never contacted. 'harden-below-nxdomain' does an upward DNS cache walk together with a delegation point
    guard that does not allow NXDOMAIN synthesis above stub/forward zones. The guard tests the domain name but
    before stripping a label. This results in an iteration where the domain name equals the configured
    stub/forward zone apex that passes the guard, strips one more label, and probes the cache at the apex's
    immediate public parent. If that parent has a cached DNSSEC-secure NXDOMAIN, which it will for any private
    namespace nested two or more labels under a signed public name, the walk returns it and the configured
    stub/forward upstream is never contacted. This can only be triggered by the query for the intermediate
    label (between the stub/forward apex and the DNSSEC parent zone). (CVE-2026-44687)

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_1786637650.json
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?edecd8f2");
  script_set_attribute(attribute:"see_also", value:"https://cve.tuxcare.com/els/releases/CLSA-2026:1786637650");
  script_set_attribute(attribute:"solution", value:
"Update the affected packages based on the guidance in TuxCare advisory ALMALINUX9.2:CLSA-2026:1786637650.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:H/Au:N/C:N/I:P/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:H/PR:N/UI:N/S:U/C:N/I:L/A:N");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss4_vector", value:"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N");
  script_set_attribute(attribute:"cvss4_threat_vector", value:"CVSS:4.0/E:U");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-50243");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");
  script_set_attribute(attribute:"vendor_severity", value:"Low");

  script_set_attribute(attribute:"vuln_publication_date", value:"2024/05/09");
  script_set_attribute(attribute:"patch_publication_date", value:"2026/08/13");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/09/30");

  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':'python3-unbound-1.16.2-3.el9_2.tuxcare.els14', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'unbound-1.16.2-3.el9_2.tuxcare.els14', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'unbound-devel-1.16.2-3.el9_2.tuxcare.els14', 'sp':'2', 'cpu':'i686', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'unbound-devel-1.16.2-3.el9_2.tuxcare.els14', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'unbound-libs-1.16.2-3.el9_2.tuxcare.els14', 'sp':'2', 'cpu':'i686', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'unbound-libs-1.16.2-3.el9_2.tuxcare.els14', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', '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_NOTE,
      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, 'python3-unbound / unbound / unbound-devel / unbound-libs');
}

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

30 Sep 2026 00:00Current
5.5Medium risk
Vulners AI Score5.5
CVSS 3.13.7 - 7.5
CVSS 46.3
EPSS0.01743
SSVC
3