Lucene search
+L

Amazon Linux 2023 : python3-unbound, unbound, unbound-anchor (ALAS2023-2026-3127)

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

Multiple vulnerabilities in Unbound enable heap buffer overflow, DoS, and data serving.

Related
Refs
Code
#%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-3127.
##

include('compat.inc');

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

  script_cve_id(
    "CVE-2026-77955",
    "CVE-2026-80225",
    "CVE-2026-81634",
    "CVE-2026-82717",
    "CVE-2026-82720",
    "CVE-2026-85501"
  );

  script_name(english:"Amazon Linux 2023 : python3-unbound, unbound, unbound-anchor (ALAS2023-2026-3127)");

  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-3127 advisory.

    In NLnet Labs Unbound 1.13.2 up to and including 1.26.1, a vulnerability in ZONEMD configured zones
    (zonemd-check: yes) which are located below (but not at) a trust anchor allow for an attack window where
    (tampered with) zone contents are served (or stored to disk) prior to the ZONEMD integrity check. This is
    caused by the needed DS/DNSKEY asynchronous resolution that needs to happen before the ZONEMD check
    completes. If a zonefile is written to disk (zonefile: option) while the ZONEMD check failed, the tampered
    data are reloaded on startup and available until ZONEMD verification concludes again. If verification
    fails, the data is not served any more but still persists on disk for future reloads. (CVE-2026-77955)

    In NLnetLabs Unbound up to and including 1.26.0, a degradation of service vulnerability is present in the
    TCP/DoT reading procedure where there is no limit on consecutive reads. A malicious actor that can stream
    and sustain a rate of distinct uncached names over the TCP/DoT connection, monopolizes a single worker's
    entire event loop for as long as its writes stay ahead of the drain. (CVE-2026-80225)

    In NLnet Labs Unbound up to and including 1.26.0, a 255 length query name with a large TCP response can
    lead to a heap buffer overflow during the RRSet canonicalisation routine. This is caused by missing to add
    the first owner name into the buffer length check. A malicious actor operating a malicious name server or
    tampering with an incoming response to Unbound (canonicalisation happens before DNSSEC validation), can
    trigger the vulnerability. (CVE-2026-81634)

    In NLnet Labs Unbound up to and including 1.26.0, a vulnerability was found in that can progressively
    corrupt heap memory and under certain systems and compilation options could lead to remote code execution.
    The vulnerability starts when CNAME synthesis during an upstream response needs to enforce(rewrite) a max
    TTL value in the packet buffer. Coupled with a compression pointer that points to the overwritten value
    and invalidates the domain name, it leads to an error path that does not properly move the buffer position
    and allows for the heap buffer overflow. Since this is heavily reliant on heap memory layout, results are
    memory corruption that eventually leads to a crash and under specific systems and compilation options
    remote code execution. (CVE-2026-82717)

    NLnet Labs Unbound 1.12.0 up to and including 1.26.0 has a use-after-free vulnerability when compiled for
    DNS-over-HTTPs support with '--with-libnghttp2'. During failure code paths (i.e., RPZ drop query, jostle
    due to heavy traffic), a dropped DoH stream brings down the whole DoH session and does not account
    properly for other DoH streams in the same session. This leads to use-after-free in those code paths. If
    the prerequisites are satisfied (possible RPZ drop or heavy client traffic), a malicious actor can trigger
    the vulnerability with a single DoH connection and the appropriate traffic. Impact is limited as the reads
    are not user controlled and the use-after-free leads to early returns. However, a hardened allocator can
    catch the use-after-free and controllably terminate the process resulting to denial of service.
    (CVE-2026-82720)

    Novel vulnerabilities to launch algorithmic complexity attacks on DNSSEC have been researched under the
    term 'ReTrap'. These result in degradation of service when malicious zones are used to serve the
    algorithmic complexity vulnerabilities. NLnet Labs Unbound up to and including 1.26.0 is vulnerable to
    some of them. TagTrap, where  the triple(Zone, Algo, KeyTag) matching mechanism introduces a significant
    attack vector when resolvers handle malicious responses containing numerous mismatched DNSKEY, RRSIG, and
    DS record. DelegationTrap, where constructing the chain-of-trust requires iterative validation of DNSKEY
    and DS records from the root zone downward. For deeply nested domains, this results in significant
    computational overhead. NsecTrap, where  responses with excessive invalid NSEC records compel the resolver
    to validate each one. AdditionalTrap, where Unbound by default would try to DNSSEC validate the ADDITIONAL
    section as well. This can be exploited to waste validation resources by malicious users. (CVE-2026-85501)

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-3127.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-77955.html");
  script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-80225.html");
  script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-81634.html");
  script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-82717.html");
  script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-82720.html");
  script_set_attribute(attribute:"see_also", value:"https://explore.alas.aws.amazon.com/CVE-2026-85501.html");
  script_set_attribute(attribute:"solution", value:
"Run 'dnf update unbound --releasever 2023.12.20260928' or
  or 'dnf update --advisory ALAS2023-2026-3127 --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:C");
  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:H");
  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:H/VI:H/VA:H/SC:H/SI:H/SA:H");
  script_set_attribute(attribute:"cvss4_threat_vector", value:"CVSS:4.0/E:U");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-82717");

  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/16");
  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:python3-unbound");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:python3-unbound-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:unbound");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:unbound-anchor");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:unbound-anchor-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:unbound-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:unbound-debugsource");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:unbound-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:unbound-libs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:unbound-libs-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:unbound-utils");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:unbound-utils-debuginfo");
  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':'python3-unbound-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'python3-unbound-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'python3-unbound-debuginfo-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'python3-unbound-debuginfo-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-anchor-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-anchor-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-anchor-debuginfo-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-anchor-debuginfo-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-debuginfo-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-debuginfo-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-debugsource-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-debugsource-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-devel-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-devel-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-libs-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-libs-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-libs-debuginfo-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-libs-debuginfo-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-utils-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-utils-1.17.1-1.amzn2023.0.15', 'cpu':'x86_64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-utils-debuginfo-1.17.1-1.amzn2023.0.15', 'cpu':'aarch64', 'release':'AL-2023', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'unbound-utils-debuginfo-1.17.1-1.amzn2023.0.15', '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, "python3-unbound / python3-unbound-debuginfo / unbound / 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
6.8Medium risk
Vulners AI Score6.8
CVSS 3.17.5 - 9.8
CVSS 49.5
EPSS0.00782
SSVC
5