Every CVE Search/ Get API key

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

7.5 HighFix available

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

0.68%Up 0.5 points since Sep 2, 2026
90%50%10%1%

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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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

Affected packages
PackageAffectedFixed
perl-Net-DNS
AlmaLinux:9
before 1.29-6.el9_8.1
1.29-6.el9_8.1
perl-Net-DNS-Nameserver
AlmaLinux:9
before 1.29-6.el9_8.1
1.29-6.el9_8.1
perl-Net-DNS
AlmaLinux:8
before 1.15-2.el8_10
1.15-2.el8_10
libnet-dns-perl
Debian:12
All versions, plus listed versions
1.36-11.36-1+deb12u11.39-11.39-21.40-1
Show 15 moreShow less
1.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-perl
Debian: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-perl
Debian:14
before 1.57-1, plus listed versions
1.50-11.53-11.54-11.55-11.56-1
1.57-1
perl-Net-DNS
Mageia:10
From an advisory covering 3 CVEs
before 1.570.0-1.mga10
1.570.0-1.mga10
perl-Net-DNS
Mageia:9
From an advisory covering 3 CVEs
before 1.360.0-1.1.mga9
1.360.0-1.1.mga9
perl-Net-DNS
Red Hat:enterprise_linux:9::appstream
before 0:1.29-6.el9_8.1
0:1.29-6.el9_8.1
perl-Net-DNS-Nameserver
Red Hat:enterprise_linux:9::crb
before 0:1.29-6.el9_8.1
0:1.29-6.el9_8.1
Show 15 moreShow less
Affected packages
PackageAffectedFixed
perl-Net-DNS
Red Hat:enterprise_linux:8::appstream
before 0:1.15-2.el8_10
0:1.15-2.el8_10
perl-Net-DNS
Rocky Linux:9
before 0:1.29-6.el9_8.1
0:1.29-6.el9_8.1
perl-Net-DNS
Rocky Linux:8
before 0:1.15-2.el8_10
0:1.15-2.el8_10
perl-Net-DNS
SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5
before 0.73-5.6.1
0.73-5.6.1
perl-Net-DNS
SUSE:Linux Enterprise Module for Basesystem 15 SP7
before 1.14-150000.3.6.1
1.14-150000.3.6.1
libnet-dns-perl
Ubuntu:14.04:LTS
All versions, plus listed versions
0.68-1.20.68-1.2build1
None known
libnet-dns-perl
Ubuntu:16.04:LTS
All versions, plus listed versions
0.81-20.81-2build1
None known
libnet-dns-perl
Ubuntu:18.04:LTS
All versions, plus listed versions
1.10-2
None known
libnet-dns-perl
Ubuntu:20.04:LTS
All versions, plus listed versions
1.20-11.21-11.22-1
None known
libnet-dns-perl
Ubuntu:22.04:LTS
All versions, plus listed versions
1.29-11.32-11.33-1
None known
libnet-dns-perl
Ubuntu:24.04:LTS
All versions, plus listed versions
1.39-2ubuntu11.40-1ubuntu11.44-1ubuntu1
None known
libnet-dns-perl
Ubuntu:26.10
All versions, plus listed versions
1.54-1ubuntu11.55-1ubuntu1
None known
libnet-dns-perl
Ubuntu:26.04:LTS
All versions, plus listed versions
1.50-1ubuntu11.53-1ubuntu11.54-1ubuntu1
None known
perl-Net-DNS
openSUSE:Tumbleweed
before 1.570.0-1.1
1.570.0-1.1
perl-Net-DNS
openSUSE:Leap 16.0
From an advisory covering 3 CVEs
before 1.570.0-bp160.1.1
1.570.0-bp160.1.1

History

History
RecordedChangedSources
affected, facts
aliases, publishedEUVD
first indexedCVE 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

Show 37 moreShow less
MoveEnter Open