Bug 2527155 (CVE-2026-81928) - CVE-2026-81928 perl-Net-DNS: Net::DNS: Denial of Service via unbounded recursion with misplaced TSIG records
Summary: CVE-2026-81928 perl-Net-DNS: Net::DNS: Denial of Service via unbounded recurs...
Keywords:
Status: NEW
Alias: CVE-2026-81928
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On: 2529757 2529758
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-09-01 23:31 UTC by OSIDB Bzimport
Modified: 2026-09-08 12:43 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-09-01 23:31:25 UTC
Net::DNS versions before 1.57 for Perl allow memory exhaustion via unbounded recursion in sig_data when re-encoding a message with a misplaced TSIG record.

sig_data signs a message by re-encoding it, and removes TSIG records only from the additional section. A TSIG decoded into the answer or authority section survives that step and is signed again, so encoding re-enters sig_data with no termination condition. Decoding does not reject such a message: a TSIG that is not the last record on the wire raises "misplaced or corrupt TSIG", but the error is caught, reported as a warning, and the record is left in the packet. RFC 8945 section 5.2 requires the message to be dropped.

The recursion is reached only when the decoded TSIG carries an empty MAC, since a MAC recovered from the wire short-circuits the signing step. It is reached only from code that re-encodes a message it decoded, such as a forwarder or a proxy. A decoded message that is never re-encoded is unaffected. Message direction does not matter: a query reaches the same path as a response.

Each cycle re-encodes the whole message, so fewer than 100 bytes on the wire exhaust available memory and terminate the process.


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