Bug 2506421 - CVE-2026-56416 golang-github-grpc-ecosystem-gateway: Unbound: Heap buffer overflow via malformed DNSSEC record [fedora-all]
Summary: CVE-2026-56416 golang-github-grpc-ecosystem-gateway: Unbound: Heap buffer ove...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: golang-github-grpc-ecosystem-gateway
Version: rawhide
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
Assignee: Orphan Owner
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: {"flaws": ["077d095b-40f1-4308-b378-f...
Depends On:
Blocks: CVE-2026-56416
TreeView+ depends on / blocked
 
Reported: 2026-07-23 13:34 UTC by Srikanth Balasubramanian
Modified: 2026-07-24 06:07 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-07-24 06:07:31 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Srikanth Balasubramanian 2026-07-23 13:34:07 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

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.


Note You need to log in before you can comment on or make changes to this bug.