<?xml version="1.0" encoding="UTF-8"?>
<cvrfdoc xmlns="http://www.icasi.org/CVRF/schema/cvrf/1.1" xmlns:cvrf="http://www.icasi.org/CVRF/schema/cvrf/1.1">
	<DocumentTitle xml:lang="en">An update for unbound is now available for openEuler-24.03-LTS-SP1</DocumentTitle>
	<DocumentType>Security Advisory</DocumentType>
	<DocumentPublisher Type="Vendor">
		<ContactDetails>openeuler-security@openeuler.org</ContactDetails>
		<IssuingAuthority>openEuler security committee</IssuingAuthority>
	</DocumentPublisher>
	<DocumentTracking>
		<Identification>
			<ID>openEuler-SA-2026-3334</ID>
		</Identification>
		<Status>Final</Status>
		<Version>1.0</Version>
		<RevisionHistory>
			<Revision>
				<Number>1.0</Number>
				<Date>2026-08-13</Date>
				<Description>Initial</Description>
			</Revision>
		</RevisionHistory>
		<InitialReleaseDate>2026-08-13</InitialReleaseDate>
		<CurrentReleaseDate>2026-08-13</CurrentReleaseDate>
		<Generator>
			<Engine>openEuler SA Tool V1.0</Engine>
			<Date>2026-08-13</Date>
		</Generator>
	</DocumentTracking>
	<DocumentNotes>
		<Note Title="Synopsis" Type="General" Ordinal="1" xml:lang="en">unbound security update</Note>
		<Note Title="Summary" Type="General" Ordinal="2" xml:lang="en">An update for unbound is now available for openEuler-24.03-LTS-SP1</Note>
		<Note Title="Description" Type="General" Ordinal="3" xml:lang="en">Unbound is a validating, recursive, caching DNS resolver. It is designed to be fast and lean and incorporates modern features based on open standards. To help increase online privacy, Unbound supports DNS-over-TLS which allows clients to encrypt their communication. Unbound is available for most platforms such as FreeBSD, OpenBSD, NetBSD, MacOS, Linux and Microsoft Windows. Unbound is a totally free, open source software under the BSD license. It doesn&amp;apos;t make custom builds or provide specific features to paying customers only.

Security Fix(es):

In Unbound 1.9.0 up to and including 1.25.1, when a DNSCrypt query is received over TCP, the routine that encrypts the reply in place fails to bound the reply length against the destination buffer size. The size clamp that protects the UDP path is not applied on the TCP path, so a reply larger than 65504 bytes is shifted forward by 48 bytes inside a buffer of capacity equal to &apos;msg-buffer-size&apos;, writing past the end of the heap allocation. A single malicious encrypted query crashes the resolver and lead to denial of service. This vulnerability needs Unbound to be compiled with DNSCrypt support (&apos;--enable-dnscrypt&apos;) and the &apos;dnscrypt:&apos; clause to be configured and enabled for the listening interfaces.(CVE-2026-40691)

With NLnet Labs Unbound up to and including version 1.25.1, applications using libunbound and configured with &apos;unwanted-reply-threshold&apos;, could eventually be abruptly terminated if the threshold is reached and libunbound needs to call &apos;libworker_alloc_cleanup&apos; since the function is absent from the function call allow list. When an application using libunbound sets &apos;unwanted-reply-threshold&apos; 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 &apos;libworker_alloc_cleanup&apos; 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 &apos;worker_alloc_cleanup&apos; is registed in the allow list and proceeds to perform the documented cache flush.(CVE-2026-44621)

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 single delegated zone to poison arbitrary sibling zones under NSEC-signed parent domains. A malicious actor with one registered domain under an NSEC-signed TLD can serve malicious insecure DNS responses for unrelated sibling domains (sharing the same parent zone). Arbitrary delegations that do not exist under the parent domain and are covered by the parent&apos;s NSEC chain can be brought into insecure existence by fraudulent wildcard DS records (less labels than expected, unknown algorithm) from the malicious sibling domain. This allows the malicious actor to inject insecure wildcard records for those delegations.(CVE-2026-44690)

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 on NSEC validation. When the resolving thread puts secure on the rrset, and another thread that is on the serve expired path then picks up the updated rrset contents with the secure status for a reply, it can be used to change a specific record, next to a wildcard that could be covered by the wildcard, into the wildcard. A malicious actor can exploit the possible poisonous effect by having any DNSSEC-singed domain (irrelevant to the victim domain) and a CNAME wrapper record that points to a record next to a wildcard (that could be covered by the wildcard). Then quering Unbound for the wildcard sibling record would seed the secure message. A later (after expiry) query for the CNAME wrapper would need to resolve the target sibling record. If the wildcard replay is injected into the response, the wildcard rrset will update the expired sibling record with a secure status before completing proper wildcard validation with NSEC records and eventually treating the CNAME wrapper answer as bogus. The updated poisoned rrset is now secure and points to the wildcard. This vulnerability is explicit for the serve expired path and needs injection of the signed wildcard rrset without the NSEC accompanying rrset.(CVE-2026-46582)

In NLnet Labs Unbound 1.6.2 up to and including 1.25.1, when Unbound is configured with the &apos;respip&apos; module in front of the validator together with a &apos;response-ip&apos; redirect rule or an RPZ file with an RPZ-IP trigger, the rewriting handler does not check the security status of the upstream answer and can instead rewrite a BOGUS A/AAAA answer to point to an operator&apos;s configured IP. If the validator finds an expired or otherwise invalid RRSIG on an answer whose A record falls within a &apos;response-ip&apos;/RPZ configuration, the answer is still rewritten and given a hard coded security level of INSECURE. This results in the client receiving an INSECURE NOERROR reply rewritten by the operator&apos;s configured IP. A malicious actor can exploit the possible poisonous effect by spoofing a BOGUS A/AAAA answer that falls inside the operator&apos;s configured subnet rewrites. Such DNSSEC protected answers are then insecurely redirected to the operator&apos;s configured target.(CVE-2026-50243)

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&apos;s A/AAAA record (no valid RRSIG required) becomes the zone&apos;s XFR primary and can replaces the entire zone/the resolver&apos;s entire response policy.(CVE-2026-50248)

In NLnet Labs Unbound up to and including version 1.25.1, when &apos;unwanted-reply-threshold&apos; 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 &apos;unwanted-reply-threshold&apos; 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 &apos;unwanted-reply-threshold&apos; 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&apos;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-50251)

In NLnet Labs Unbound 1.6.0 up to and including 1.25.1, the &apos;view_local_data&apos; and &apos;view_local_datas&apos; commands of &apos;unbound-control&apos; 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-55708)

In NLnet Labs Unbound 1.10.0 up to and including 1.25.1, when &apos;serve-expired: yes&apos; is set together with a &apos;response-ip: &lt;net&gt; redirect&apos; /&apos;response-ip-data: &lt;net&gt; CNAME &lt;target&gt;&apos; rule (or the RPZ &apos;rpz-cname-override&apos; 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 &apos;alias_rrset&apos; but not &apos;partial_rep&apos;. 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 &apos;serve-expired-client-timeout&apos; is taken leading to denial of service via the server crash.(CVE-2026-55717)

In NLnet Labs Unbound 1.7.0 up to and including 1.25.1, when the &apos;dnscrypt:&apos; clause lists more &apos;dnscrypt-provider-cert:&apos; files than there are matching &apos;dnscrypt-secret-key:&apos; files, Unbound fills only the matched prefix and leaves the tail slots at the &apos;0xdb&apos; fill that libsodium&apos;s allocator writes into every allocation. Unbound would then iterate over the number of cert files, not the actual slots, so it walks into a slot with garbage data filled with &apos;0xdb&apos; bytes. Any unauthenticated client that sends one UDP datagram of ≥ 68 bytes whose first 8 bytes are &apos;0xdb&apos; to &apos;dnscrypt-port&apos; will use that garbage entry which leads to a garbage dereference killing the server. This is a silent faulty configuration that goes unnoticed until triggered with the right client query. Unbound needs to be compiled with DNSCrypt support (&apos;--enable-dnscrypt&apos;).(CVE-2026-55990)

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 &apos;datstart + dname_valid(datstart, ...)&apos; and passes it straight to &apos;query_dname_tolower()&apos; 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 &apos;query_dname_tolower()&apos; to walk label-by-label through stale bytes in the per-worker &apos;env-&gt;scratch_buffer&apos;, past the end of that heap allocation if &apos;msg-buffer-size&apos; 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-56416)</Note>
		<Note Title="Topic" Type="General" Ordinal="4" xml:lang="en">An update for unbound is now available for openEuler-24.03-LTS-SP1.

openEuler Security has rated this update as having a security impact of high. A Common Vunlnerability Scoring System(CVSS)base score,which gives a detailed severity rating, is available for each vulnerability from the CVElink(s) in the References section.</Note>
		<Note Title="Severity" Type="General" Ordinal="5" xml:lang="en">High</Note>
		<Note Title="Affected Component" Type="General" Ordinal="6" xml:lang="en">unbound</Note>
	</DocumentNotes>
	<DocumentReferences>
		<Reference Type="Self">
			<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
		</Reference>
		<Reference Type="openEuler CVE">
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-40691</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-44621</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-44690</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-46582</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-50243</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-50248</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-50251</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-55708</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-55717</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-55990</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-56416</URL>
		</Reference>
		<Reference Type="Other">
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-40691</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-44621</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-44690</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-46582</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-50243</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-50248</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-50251</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-55708</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-55717</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-55990</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-56416</URL>
		</Reference>
	</DocumentReferences>
	<ProductTree xmlns="http://www.icasi.org/CVRF/schema/prod/1.1">
		<Branch Type="Product Name" Name="openEuler">
			<FullProductName ProductID="openEuler-24.03-LTS-SP1" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">openEuler-24.03-LTS-SP1</FullProductName>
		</Branch>
		<Branch Type="Package Arch" Name="aarch64">
			<FullProductName ProductID="python3-unbound-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">python3-unbound-1.17.1-19.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="unbound-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-1.17.1-19.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="unbound-anchor-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-anchor-1.17.1-19.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="unbound-debuginfo-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-debuginfo-1.17.1-19.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="unbound-debugsource-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-debugsource-1.17.1-19.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="unbound-devel-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-devel-1.17.1-19.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="unbound-help-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-help-1.17.1-19.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="unbound-libs-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-libs-1.17.1-19.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="unbound-utils-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-utils-1.17.1-19.oe2403sp1.aarch64.rpm</FullProductName>
		</Branch>
		<Branch Type="Package Arch" Name="x86_64">
			<FullProductName ProductID="python3-unbound-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">python3-unbound-1.17.1-19.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="unbound-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-1.17.1-19.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="unbound-anchor-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-anchor-1.17.1-19.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="unbound-debuginfo-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-debuginfo-1.17.1-19.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="unbound-debugsource-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-debugsource-1.17.1-19.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="unbound-devel-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-devel-1.17.1-19.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="unbound-help-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-help-1.17.1-19.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="unbound-libs-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-libs-1.17.1-19.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="unbound-utils-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-utils-1.17.1-19.oe2403sp1.x86_64.rpm</FullProductName>
		</Branch>
		<Branch Type="Package Arch" Name="src">
			<FullProductName ProductID="unbound-1.17.1-19" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">unbound-1.17.1-19.oe2403sp1.src.rpm</FullProductName>
		</Branch>
	</ProductTree>
	<Vulnerability Ordinal="1" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">In Unbound 1.9.0 up to and including 1.25.1, when a DNSCrypt query is received over TCP, the routine that encrypts the reply in place fails to bound the reply length against the destination buffer size. The size clamp that protects the UDP path is not applied on the TCP path, so a reply larger than 65504 bytes is shifted forward by 48 bytes inside a buffer of capacity equal to &apos;msg-buffer-size&apos;, writing past the end of the heap allocation. A single malicious encrypted query crashes the resolver and lead to denial of service. This vulnerability needs Unbound to be compiled with DNSCrypt support (&apos;--enable-dnscrypt&apos;) and the &apos;dnscrypt:&apos; clause to be configured and enabled for the listening interfaces.</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-40691</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>High</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>7.5</BaseScore>
				<Vector>AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="2" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">With NLnet Labs Unbound up to and including version 1.25.1, applications using libunbound and configured with &apos;unwanted-reply-threshold&apos;, could eventually be abruptly terminated if the threshold is reached and libunbound needs to call &apos;libworker_alloc_cleanup&apos; since the function is absent from the function call allow list. When an application using libunbound sets &apos;unwanted-reply-threshold&apos; 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 &apos;libworker_alloc_cleanup&apos; 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 &apos;worker_alloc_cleanup&apos; is registed in the allow list and proceeds to perform the documented cache flush.</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-44621</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>Medium</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>5.9</BaseScore>
				<Vector>AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="3" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">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 single delegated zone to poison arbitrary sibling zones under NSEC-signed parent domains. A malicious actor with one registered domain under an NSEC-signed TLD can serve malicious insecure DNS responses for unrelated sibling domains (sharing the same parent zone). Arbitrary delegations that do not exist under the parent domain and are covered by the parent&apos;s NSEC chain can be brought into insecure existence by fraudulent wildcard DS records (less labels than expected, unknown algorithm) from the malicious sibling domain. This allows the malicious actor to inject insecure wildcard records for those delegations.</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-44690</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>High</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>7.5</BaseScore>
				<Vector>AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="4" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">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 on NSEC validation. When the resolving thread puts secure on the rrset, and another thread that is on the serve expired path then picks up the updated rrset contents with the secure status for a reply, it can be used to change a specific record, next to a wildcard that could be covered by the wildcard, into the wildcard. A malicious actor can exploit the possible poisonous effect by having any DNSSEC-singed domain (irrelevant to the victim domain) and a CNAME wrapper record that points to a record next to a wildcard (that could be covered by the wildcard). Then quering Unbound for the wildcard sibling record would seed the secure message. A later (after expiry) query for the CNAME wrapper would need to resolve the target sibling record. If the wildcard replay is injected into the response, the wildcard rrset will update the expired sibling record with a secure status before completing proper wildcard validation with NSEC records and eventually treating the CNAME wrapper answer as bogus. The updated poisoned rrset is now secure and points to the wildcard. This vulnerability is explicit for the serve expired path and needs injection of the signed wildcard rrset without the NSEC accompanying rrset.</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-46582</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>Low</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>3.7</BaseScore>
				<Vector>AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="5" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">In NLnet Labs Unbound 1.6.2 up to and including 1.25.1, when Unbound is configured with the &apos;respip&apos; module in front of the validator together with a &apos;response-ip&apos; redirect rule or an RPZ file with an RPZ-IP trigger, the rewriting handler does not check the security status of the upstream answer and can instead rewrite a BOGUS A/AAAA answer to point to an operator&apos;s configured IP. If the validator finds an expired or otherwise invalid RRSIG on an answer whose A record falls within a &apos;response-ip&apos;/RPZ configuration, the answer is still rewritten and given a hard coded security level of INSECURE. This results in the client receiving an INSECURE NOERROR reply rewritten by the operator&apos;s configured IP. A malicious actor can exploit the possible poisonous effect by spoofing a BOGUS A/AAAA answer that falls inside the operator&apos;s configured subnet rewrites. Such DNSSEC protected answers are then insecurely redirected to the operator&apos;s configured target.</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-50243</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>Low</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>3.7</BaseScore>
				<Vector>AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="6" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">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&apos;s A/AAAA record (no valid RRSIG required) becomes the zone&apos;s XFR primary and can replaces the entire zone/the resolver&apos;s entire response policy.</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-50248</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>Medium</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>6.5</BaseScore>
				<Vector>AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="7" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">In NLnet Labs Unbound up to and including version 1.25.1, when &apos;unwanted-reply-threshold&apos; 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 &apos;unwanted-reply-threshold&apos; 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 &apos;unwanted-reply-threshold&apos; 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&apos;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.</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-50251</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>Medium</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>5.3</BaseScore>
				<Vector>AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="8" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">In NLnet Labs Unbound 1.6.0 up to and including 1.25.1, the &apos;view_local_data&apos; and &apos;view_local_datas&apos; commands of &apos;unbound-control&apos; 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.</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-55708</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>Low</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>3.1</BaseScore>
				<Vector>AV:L/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="9" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">In NLnet Labs Unbound 1.10.0 up to and including 1.25.1, when &apos;serve-expired: yes&apos; is set together with a &apos;response-ip: &lt;net&gt; redirect&apos; /&apos;response-ip-data: &lt;net&gt; CNAME &lt;target&gt;&apos; rule (or the RPZ &apos;rpz-cname-override&apos; 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 &apos;alias_rrset&apos; but not &apos;partial_rep&apos;. 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 &apos;serve-expired-client-timeout&apos; is taken leading to denial of service via the server crash.</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-55717</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>Medium</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>5.9</BaseScore>
				<Vector>AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="10" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">In NLnet Labs Unbound 1.7.0 up to and including 1.25.1, when the &apos;dnscrypt:&apos; clause lists more &apos;dnscrypt-provider-cert:&apos; files than there are matching &apos;dnscrypt-secret-key:&apos; files, Unbound fills only the matched prefix and leaves the tail slots at the &apos;0xdb&apos; fill that libsodium&apos;s allocator writes into every allocation. Unbound would then iterate over the number of cert files, not the actual slots, so it walks into a slot with garbage data filled with &apos;0xdb&apos; bytes. Any unauthenticated client that sends one UDP datagram of ≥ 68 bytes whose first 8 bytes are &apos;0xdb&apos; to &apos;dnscrypt-port&apos; will use that garbage entry which leads to a garbage dereference killing the server. This is a silent faulty configuration that goes unnoticed until triggered with the right client query. Unbound needs to be compiled with DNSCrypt support (&apos;--enable-dnscrypt&apos;).</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-55990</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>Medium</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>5.9</BaseScore>
				<Vector>AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="11" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">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 &apos;datstart + dname_valid(datstart, ...)&apos; and passes it straight to &apos;query_dname_tolower()&apos; 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 &apos;query_dname_tolower()&apos; to walk label-by-label through stale bytes in the per-worker &apos;env-&gt;scratch_buffer&apos;, past the end of that heap allocation if &apos;msg-buffer-size&apos; 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.</Note>
		</Notes>
		<ReleaseDate>2026-08-13</ReleaseDate>
		<CVE>CVE-2026-56416</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>Medium</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>4.8</BaseScore>
				<Vector>AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>unbound security update</Description>
				<DATE>2026-08-13</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3334</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
</cvrfdoc>