CVE-2026-81928
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
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
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
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.
- Record
CVE-2026-81928- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
EUVDEUVD-2026-69727
7.5
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.
- Record
EUVD-2026-69727- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-x88w-xx7m-3m5f
7.5
Net::DNS versions before 1.57 for Perl allow memory exhaustion via unbounded recursion in...
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.
- Record
GHSA-x88w-xx7m-3m5f- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
NVD
7.5
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.
- Record
CVE-2026-81928- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-81928
7.5
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.
- Record
DEBIAN-CVE-2026-81928- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRHSA-2026:68786
7.5
Red Hat Security Advisory: perl-Net-DNS security update
- Record
RHSA-2026:68786- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 11 moreShow less
OSVRHSA-2026:68787
7.5
Red Hat Security Advisory: perl-Net-DNS security update
- Record
RHSA-2026:68787- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRLSA-2026:68786
7.5
Important: perl-Net-DNS security update
The perl-Net-DNS package contains a collection of Perl modules that act as a Domain Name System (DNS) resolver. It allows the programmer to perform DNS queries that are beyond the capabilities of the gethostbyname and gethostbyaddr routines.
Security Fix(es):
- perl-Net-DNS: Net::DNS: Denial of Service via unbounded recursion with misplaced TSIG records (CVE-2026-81928)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:68786- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRLSA-2026:68787
7.5
Important: perl-Net-DNS security update
The perl-Net-DNS package contains a collection of Perl modules that act as a Domain Name System (DNS) resolver. It allows the programmer to perform DNS queries that are beyond the capabilities of the gethostbyname and gethostbyaddr routines.
Security Fix(es):
- perl-Net-DNS: Net::DNS: Denial of Service via unbounded recursion with misplaced TSIG records (CVE-2026-81928)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:68787- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-81928
7.5
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.
- Record
UBUNTU-CVE-2026-81928- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVALSA-2026:68786 No score
Important: perl-Net-DNS security update
The perl-Net-DNS package contains a collection of Perl modules that act as a Domain Name System (DNS) resolver. It allows the programmer to perform DNS queries that are beyond the capabilities of the gethostbyname and gethostbyaddr routines.
Security Fix(es):
- perl-Net-DNS: Net::DNS: Denial of Service via unbounded recursion with misplaced TSIG records (CVE-2026-81928)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:68786- Updated
- 2026-11-02
OSVALSA-2026:68787 No score
Important: perl-Net-DNS security update
The perl-Net-DNS package contains a collection of Perl modules that act as a Domain Name System (DNS) resolver. It allows the programmer to perform DNS queries that are beyond the capabilities of the gethostbyname and gethostbyaddr routines.
Security Fix(es):
- perl-Net-DNS: Net::DNS: Denial of Service via unbounded recursion with misplaced TSIG records (CVE-2026-81928)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:68787- Updated
- 2026-11-02
OSVMGASA-2026-0448 No score
Updated perl-Net-DNS packages fix security vulnerabilities
Net::DNS versions through 1.55 for Perl allow remote execution injection via EDNS EXTENDED ERROR. (CVE-2026-64193) Net::DNS versions through 1.55 for Perl allow Denial of Service via deep DNS compression pointer chains. (CVE-2026-64194) 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. (CVE-2026-81928)
- Record
MGASA-2026-0448- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11708-1 No score
perl-Net-DNS-1.570.0-1.1 on GA media
These are all security issues fixed in the perl-Net-DNS-1.570.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11708-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21859-1 No score
Security update for perl-Net-DNS
This update for perl-Net-DNS fixes the following issues:
Changes in perl-Net-DNS:
Updated to 1.570.0 (1.57):
See /usr/share/doc/packages/perl-Net-DNS/Changes .
-
Resync with IANA DNS parameters registry. -
EDNS: Add support for MQTYPE-QUERY option. -
Unbounded recursion when re-encoding message with misplaced TSIG CVE-2026-81928 bsc#1278084 -
UNIX resolver can fail in taint mode -
Documentation issue for Net::DNS::RR::RRSIG::verify() -
Denial of Service via long DNS compression chains CVE-2026-64194 bsc#1272214 -
Remote code injection via EDNS EXTENDED ERROR CVE-2026-64193 bsc#1272212 -
UNIX.pm: Unreachable code warning using Apache/mod_perl
- Record
openSUSE-SU-2026:21859-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:4065-1 No score
Security update for perl-Net-DNS
This update for perl-Net-DNS fixes the following issue:
- CVE-2026-81928: memory exhaustion via unbounded recursion in sig_data when re-encoding a message with a misplaced TSIG record (bsc#1278084).
- Record
SUSE-SU-2026:4065-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:4086-1 No score
Security update for perl-Net-DNS
This update for perl-Net-DNS fixes the following issue:
- CVE-2026-81928: memory exhaustion via unbounded recursion in sig_data when re-encoding a message with a misplaced TSIG record (bsc#1278084).
- Record
SUSE-SU-2026:4086-1- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
perl-Net-DNSAlmaLinux:9 |
before 1.29-6.el9_8.1 | 1.29-6.el9_8.1 |
perl-Net-DNS-NameserverAlmaLinux:9 |
before 1.29-6.el9_8.1 | 1.29-6.el9_8.1 |
perl-Net-DNSAlmaLinux:8 |
before 1.15-2.el8_10 | 1.15-2.el8_10 |
libnet-dns-perlDebian:12 |
All versions, plus listed versions 1.36-11.36-1+deb12u11.39-11.39-21.40-1 Show 15 moreShow less1.41-11.42-11.43-11.44-11.45-11.46-11.47-11.48-11.49-11.50-11.53-11.54-11.55-11.56-11.57-1 |
None known |
libnet-dns-perlDebian:13 |
All versions, plus listed versions 1.50-11.53-11.54-11.55-11.56-0+deb13u11.56-11.57-1 |
None known |
libnet-dns-perlDebian:14 |
before 1.57-1, plus listed versions 1.50-11.53-11.54-11.55-11.56-1 |
1.57-1 |
perl-Net-DNSMageia:10 From an advisory covering 3 CVEs |
before 1.570.0-1.mga10 | 1.570.0-1.mga10 |
perl-Net-DNSMageia:9 From an advisory covering 3 CVEs |
before 1.360.0-1.1.mga9 | 1.360.0-1.1.mga9 |
perl-Net-DNSRed Hat:enterprise_linux:9::appstream |
before 0:1.29-6.el9_8.1 | 0:1.29-6.el9_8.1 |
perl-Net-DNS-NameserverRed Hat:enterprise_linux:9::crb |
before 0:1.29-6.el9_8.1 | 0:1.29-6.el9_8.1 |
Show 15 moreShow less
| Package | Affected | Fixed |
|---|---|---|
perl-Net-DNSRed Hat:enterprise_linux:8::appstream |
before 0:1.15-2.el8_10 | 0:1.15-2.el8_10 |
perl-Net-DNSRocky Linux:9 |
before 0:1.29-6.el9_8.1 | 0:1.29-6.el9_8.1 |
perl-Net-DNSRocky Linux:8 |
before 0:1.15-2.el8_10 | 0:1.15-2.el8_10 |
perl-Net-DNSSUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 |
before 0.73-5.6.1 | 0.73-5.6.1 |
perl-Net-DNSSUSE:Linux Enterprise Module for Basesystem 15 SP7 |
before 1.14-150000.3.6.1 | 1.14-150000.3.6.1 |
libnet-dns-perlUbuntu:14.04:LTS |
All versions, plus listed versions 0.68-1.20.68-1.2build1 |
None known |
libnet-dns-perlUbuntu:16.04:LTS |
All versions, plus listed versions 0.81-20.81-2build1 |
None known |
libnet-dns-perlUbuntu:18.04:LTS |
All versions, plus listed versions 1.10-2 |
None known |
libnet-dns-perlUbuntu:20.04:LTS |
All versions, plus listed versions 1.20-11.21-11.22-1 |
None known |
libnet-dns-perlUbuntu:22.04:LTS |
All versions, plus listed versions 1.29-11.32-11.33-1 |
None known |
libnet-dns-perlUbuntu:24.04:LTS |
All versions, plus listed versions 1.39-2ubuntu11.40-1ubuntu11.44-1ubuntu1 |
None known |
libnet-dns-perlUbuntu:26.10 |
All versions, plus listed versions 1.54-1ubuntu11.55-1ubuntu1 |
None known |
libnet-dns-perlUbuntu:26.04:LTS |
All versions, plus listed versions 1.50-1ubuntu11.53-1ubuntu11.54-1ubuntu1 |
None known |
perl-Net-DNSopenSUSE:Tumbleweed |
before 1.570.0-1.1 | 1.570.0-1.1 |
perl-Net-DNSopenSUSE:Leap 16.0 From an advisory covering 3 CVEs |
before 1.570.0-bp160.1.1 | 1.570.0-bp160.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-81928 is a high vulnerability (CVSS 7.5) in perl-Net-DNS, published September 1, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.68%, the 52nd percentile. Fixed in perl-Net-DNS 1.29-6.el9_8.1.
References
metacpan.org/release/NLNETLABS/Net-DNS-1.56/source/lib/Net/DNS/RR/TSIG.pm
datatracker.ietf.org/doc/html/rfc8945
rt.cpan.org/Ticket/Display.html?id=181125
metacpan.org/release/NLNETLABS/Net-DNS-1.57/changes
openwall.com/lists/oss-security/2026/09/02/1
nvd.nist.gov/vuln/detail/CVE-2026-81928
Show 37 moreShow less
github.com/advisories/GHSA-x88w-xx7m-3m5f
access.redhat.com/errata/RHSA-2026:68786
access.redhat.com/security/cve/CVE-2026-81928
bugzilla.redhat.com/2527155
errata.almalinux.org/9/ALSA-2026-68786.html
access.redhat.com/errata/RHSA-2026:68787
errata.almalinux.org/8/ALSA-2026-68787.html
security-tracker.debian.org/tracker/CVE-2026-81928
advisories.mageia.org/MGASA-2026-0448.html
bugs.mageia.org/show_bug.cgi?id=35968
openwall.com/lists/oss-security/2026/07/20/12
openwall.com/lists/oss-security/2026/07/20/13
net-dns.org/blog
rt.cpan.org/Ticket/Display.html?id=179945
rt.cpan.org/Ticket/Display.html?id=179946
metacpan.org/release/NLNETLABS/Net-DNS-1.55_01/changes
lists.debian.org/debian-security-announce/2026/msg00370.html
lists.fedoraproject.org/archives/list/[email protected]/message/5TS4YPB3LGX5Q5VWSYLSIQZWXJU4UMZN
lists.opensuse.org/archives/list/[email protected]/message/GGGP7EQRAUOGLVT6K5VJ7U3KCA7YMNZZ
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=2527155
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_68786.json
cve.org/CVERecord?id=CVE-2026-81928
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_68787.json
errata.rockylinux.org/RLSA-2026:68786
errata.rockylinux.org/RLSA-2026:68787
suse.com/support/update/announcement/2026/suse-su-20264065-1
bugzilla.suse.com/1278084
suse.com/security/cve/CVE-2026-81928
suse.com/support/update/announcement/2026/suse-su-20264086-1
ubuntu.com/security/CVE-2026-81928
lists.security.metacpan.org/cve-announce/msg/43194862
metacpan.org/release/NLNETLABS/Net-DNS-1.57/diff/NLNETLABS/Net-DNS-1.56
bugzilla.suse.com/1272212
bugzilla.suse.com/1272214
suse.com/security/cve/CVE-2026-64193
suse.com/security/cve/CVE-2026-64194