Skip to content
OpenAdvisories
High ALAS2023-2026-2033 13 CVEs

Important: unbound security update (Amazon Linux 2023)

Published Aug 3, 2026 · Updated Aug 4, 2026

Summary

Package updates are available for Amazon Linux 2023 that fix the following vulnerabilities: CVE-2026-56416: In NLnet Labs Unbound up to and including version 1.25.1, when the validator builds the canonical RDATA form for an RRSIG-covered PX/RP/MINFO/SOA RRset, it computes the address of the second embedded domain name as 'datstart + dname_valid(datstart, ...)' and passes it straight to 'query_dname_tolower()' without checking that a second name is actually present in the RDATA. The wire-format parser accepts multi-dname RRs whose RDATA ends after the first name, so an attacker who runs a DNSSEC-signed authoritative server can deliver a record with an absent second domain name (e.g. SOA record) and cause 'query_dname_tolower()' to walk label-by-label through stale bytes in the per-worker 'env->scratch_buffer', past the end of that heap allocation if 'msg-buffer-size' has been lowered from the default. This leads to heap buffer overflow and on a release build the outcome relies heavily on the contents of the buffer tail and the adjacent heap chunk. CVE-2026-55717: In NLnet Labs Unbound 1.10.0 up to and including 1.25.1, when 'serve-expired: yes' is set together with a 'response-ip: <net> redirect' /'response-ip-data: <net> CNAME <target>' rule (or the RPZ 'rpz-cname-override' equivalent), a remote client who controls any delegated domain can crash the daemon. The serve-expired-client-timeout callback runs a two-pass loop to chase the respip-generated CNAME alias; on the second pass it resets 'alias_rrset' but not 'partial_rep'. Later, this inconsistency leads to a NULL pointer dereference and an eventual crash. A malicious actor can exploit the vulnerability by controlling any zone that replies with an A/AAAA record that falls inside the configured response-ip/rpz subnet. By delaying the answer when the previous record has expired, the vulnerable path of 'serve-expired-client-timeout' is taken leading to denial of service via the server crash. CVE-2026-55708: In NLnet Labs Unbound 1.6.0 up to and including 1.25.1, the 'view_local_data' and 'view_local_datas' commands of 'unbound-control' create a bare local zones tree for an already configured named view when the view is configured with no local data to begin with. However, the creation through the control interface omits adding the default-protected zones (e.g., RFC 1918 reverse, AS112 zones, .onion, .localhost). Once the local zone tree exists without the defaults, every query for a default-protected name from a client mapped to that view escapes to the public DNS via the iterator instead of being answered locally, bypassing local policy expectations. CVE-2026-50252: In NLnet Labs Unbound 1.4.22 up to and including 1.25.1, UDP source port is randomized and intended to serve as a secret value that increases the entropy of DNS transactions. When resolver load balancing policies depend on the source port while their outcome is revealed this secrecy is undermined. The vulnerability arises when the load balancing policy is consistent with respect to the incoming source UDP port and IP address while heavily depending on the incoming source UDP port as a randomization source. When the SO_REUSEPORT configuration option is enabled ('so-reuseport: yes') in Unbound (by default), it meets these conditions, making it vulnerable for DNS cache poisoning attacks. Upon startup, Unbound randomly partitions the available UDP source port space into disjoint subsets of (almost) equal size, assigning each subset to a specific worker thread. When an incoming DNS query is received, the kernel's SO_REUSEPORT load balancing mechanism deterministically assigns the query to a socket associated with a particular thread. All outgoing DNS queries generated during the resolution of that request use source ports selected exclusively from the port subset assigned to the corresponding thread. Since these port subsets are disjoint across threads, the source port observed in a resolver's outgoing query to an authoritative name server serves as a reliable indicator of the worker thread that processed the original client query. A malicious actor can acquire the mapping between incoming UDP source ports (for a given fixed source IP address) and Unbound worker threads and leverage it to conduct DNS cache poisoning attacks by effectively lowering the random port population per thread. CVE-2026-50251: In NLnet Labs Unbound up to and including version 1.25.1, when 'unwanted-reply-threshold' is enabled (set to any value greater than zero), glue records of 0.0.0.0/::0 can short-circuit Unbound, on systems that can direct such traffic, by issuing DNS queries and receiving seemingly unwanted replies since the remote IP does not match the original source IP of 0.0.0.0/::0. This behavior keeps on looping for the glue records and pushing the counter to the configured 'unwanted-reply-threshold' that triggers a defensive cache clear. A malicious actor who controls a delegation that returns in-bailiwick glue of 0.0.0.0/::0 can drive the counter to the limit of 'unwanted-reply-threshold' to the threshold and trigger a cache clean of the message and rrset caches; at will, indefinitely, without sending a single spoofed packet. The iterator uses the 0.0.0.0/::0 glue, and a system that can route this (e.g., Linux kernel routes the datagram over loopback), Unbound's own listener answers from 127.0.0.1. Because of the mismatch of 0.0.0.0 and 127.0.0.1, in this example, Unbound accounts the reply as an unwanted (probably spoofed) answer. The counter resets to zero on every cache flush, so the attack loops forever. CVE-2026-50248: In NLnet Labs Unbound 1.7.0 up to and including 1.25.1, when an auth/rpz zone has a configured primary hostname that resolves to BOGUS A/AAAA, it is still considered as a possible XFR endpoint. A malicious actor that can spoof the hostname's A/AAAA record (no valid RRSIG required) becomes the zone's XFR primary and can replaces the entire zone/the resolver's entire respons

Fixed packages 12

ReleasePackageFixed in
Amazon Linux · 2023 python3-unbound 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 python3-unbound-debuginfo 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 unbound 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 unbound-anchor 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 unbound-anchor-debuginfo 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 unbound-debuginfo 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 unbound-debugsource 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 unbound-devel 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 unbound-libs 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 unbound-libs-debuginfo 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 unbound-utils 0:1.17.1-1.amzn2023.0.13
Amazon Linux · 2023 unbound-utils-debuginfo 0:1.17.1-1.amzn2023.0.13

Vulnerabilities 13

  • High 7.5

    Cross-zone wildcard cache poisoning via RRSIG.labels manipulation

    In NLnet Labs Unbound 1.7.0 up to and including 1.25.1, insufficient validation of the RRSIG.Labels field combined with premature cache writes during RFC 8198 aggressive NSEC processing leads to cache poisoning that permits a malicious actor controlling a sin…

  • Medium 6.5

    BOGUS configured primary hostname accepted for XFR in auth/rpz zones

    In NLnet Labs Unbound 1.7.0 up to and including 1.25.1, when an auth/rpz zone has a configured primary hostname that resolves to BOGUS A/AAAA, it is still considered as a possible XFR endpoint. A malicious actor that can spoof the hostname's A/AAAA record (no…

  • Medium 6.3

    'response-ip'/'rpz' can rewrite BOGUS answers instead of returning SERVFAIL

    In NLnet Labs Unbound 1.6.2 up to and including 1.25.1, when Unbound is configured with the 'respip' module in front of the validator together with a 'response-ip' redirect rule or an RPZ file with an RPZ-IP trigger, the rewriting handler does not check the s…

  • Medium 5.9

    Libunbound applications configured with 'unwanted-reply-threshold' could eventually be abruptly terminated

    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…

  • Medium 5.9

    Possible heap use-after-free in an error path when a DoT forwarded query is jostled out

    In NLnet Labs Unbound 1.15.0 up to and including 1.25.1, the TLS server name used for DNS-over-TLS (DoT) forwarded queries is tied to a struct's ('serviced_query') lifetime but also referenced by another struct ('waiting_tcp'). When the owning struct is jostl…

  • Medium 5.9

    'serve-expired-client-timeout' and 'response-ip' CNAME redirect could lead to a crash

    In NLnet Labs Unbound 1.10.0 up to and including 1.25.1, when 'serve-expired: yes' is set together with a 'response-ip: <net> redirect' /'response-ip-data: <net> CNAME <target>' rule (or the RPZ 'rpz-cname-override' equivalent), a remote client who controls a…

  • Medium 5.7

    Possible cache poisoning attack by mapping source port population per thread

    In NLnet Labs Unbound 1.4.22 up to and including 1.25.1, UDP source port is randomized and intended to serve as a secret value that increases the entropy of DNS transactions. When resolver load balancing policies depend on the source port while their outcome …

  • Medium 5.3

    Attacker supplied '0.0.0.0'/'::' glue triggers defensive full-cache flush

    In NLnet Labs Unbound up to and including version 1.25.1, when 'unwanted-reply-threshold' is enabled (set to any value greater than zero), glue records of 0.0.0.0/::0 can short-circuit Unbound, on systems that can direct such traffic, by issuing DNS queries a…

  • Medium 4.8

    Possible heap buffer overflow when validator canonicalizes RDATA that contains domain name

    In NLnet Labs Unbound up to and including version 1.25.1, when the validator builds the canonical RDATA form for an RRSIG-covered PX/RP/MINFO/SOA RRset, it computes the address of the second embedded domain name as 'datstart + dname_valid(datstart, ...)' and …

  • Low 3.7

    Extra fix for CVE-2026-40622 to also clamp the TTL of A/AAAA records disallowing a one-time 'ghost domain' delegation renewal via glue records

    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…

  • Low 3.7

    Off-by-one error in 'harden-below-nxdomain' logic can shadow a stub/forward zone by a legitimate parent's NXDOMAIN

    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 …

  • Low 3.7

    A wildcard replay, as another piece of data, triggers poisoning in the serve expired reply path

    In NLnet Labs Unbound 1.6.0 up to and including 1.25.1, a replay of a wildcard rrset as another piece of data, could be briefly considered DNSSEC secure based only on the RRSIG validation and stored into cache, before later validation treats it as bogus based…

  • Low 3.1

    Privacy/configuration issue when adding local data in views through 'unbound-control'

    In NLnet Labs Unbound 1.6.0 up to and including 1.25.1, the 'view_local_data' and 'view_local_datas' commands of 'unbound-control' create a bare local zones tree for an already configured named view when the view is configured with no local data to begin with…

References

  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-42955.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-44621.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-44687.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-44690.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-46582.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-50046.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-50243.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-50248.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-50251.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-50252.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-55708.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-55717.html
  • web
    https://alas.aws.amazon.com/cve/html/CVE-2026-56416.html