Lucene search
+L

Linux Distros Unpatched Vulnerability : CVE-2026-81928

🗓️ 02 Sep 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 3 Views

Unbounded recursion in Net::DNS for Perl before 1.57 causes memory exhaustion via misplaced TSIG.

Related
Refs
Code
ReporterTitlePublishedViews
Family
cve
CVE
CVE-2026-81928
1 Sep 202623:14
cve
cvelist
Cvelist
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
1 Sep 202623:14
cvelist
debiancve
Debian CVE
CVE-2026-81928
1 Sep 202623:14
debiancve
euvd
EUVD
EUVD-2026-69727
2 Sep 202600:31
euvd
nvd
NVD
CVE-2026-81928
2 Sep 202600:18
nvd
osv
OSV
DEBIAN-CVE-2026-81928
2 Sep 202600:18
osv
osv
OSV
UBUNTU-CVE-2026-81928
2 Sep 202600:00
osv
ptsecurity
Positive Technologies
PT-2026-84543
1 Sep 202600:00
ptsecurity
susecve
SUSE CVE
SUSE CVE-2026-81928
2 Sep 202611:31
susecve
ubuntucve
UbuntuCve
CVE-2026-81928
2 Sep 202600:00
ubuntucve
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(342299);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/09/02");

  script_cve_id("CVE-2026-81928");

  script_name(english:"Linux Distros Unpatched Vulnerability : CVE-2026-81928");

  script_set_attribute(attribute:"synopsis", value:
"The Linux/Unix host has one or more packages installed with a vulnerability that the vendor indicates will not be
patched.");
  script_set_attribute(attribute:"description", value:
"The Linux/Unix host has one or more packages installed that are impacted by a vulnerability without a vendor supplied
patch 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. (CVE-2026-81928)

Note that Nessus relies on the presence of the package as reported by the vendor.");
  script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-81928");
  script_set_attribute(attribute:"solution", value:
"There is no known solution at this time.");
  script_set_attribute(attribute:"agent", value:"unix");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:U/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:U/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-81928");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");
  script_set_attribute(attribute:"vendor_unpatched", value:"true");

  script_set_attribute(attribute:"vuln_publication_date", value:"2026/09/01");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/09/02");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:12.0");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:13.0");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:14.0");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libnet-dns-perl");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Misc.");

  script_copyright(english:"This script is Copyright (C) 2026 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("ssh_get_info2.nasl", "set_linux_os_id.nasl");
  script_require_keys("Host/cpu", "Host/local_checks_enabled", "global_settings/vendor_unpatched", "Host/OS/identifier");
  script_require_ports("Host/OS/Debian Linux-12", "Host/OS/Debian Linux-13", "Host/OS/Debian Linux-14");

  exit(0);
}

if (!get_kb_item("global_settings/vendor_unpatched")) exit(0, "Unpatched Vulnerabilities Detection not active.");
if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (empty_or_null(get_one_kb_item("Host/Debian/dpkg-l"))) audit(AUDIT_PACKAGE_LIST_MISSING);

include('linux_unpatched.inc');

var distro_constraints_array = {
  "Debian Linux-12": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "12",
        "pkgs": [
          {"reference": "libnet-dns-perl"}
        ]
      }
    ]
  },
  "Debian Linux-13": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "13",
        "pkgs": [
          {"reference": "libnet-dns-perl"}
        ]
      }
    ]
  },
  "Debian Linux-14": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "14",
        "pkgs": [
          {"reference": "libnet-dns-perl"}
        ]
      }
    ]
  }
};

var distro_constraints_values = linux_unpatched::get_distro_constraints(distro_constraints_arr:distro_constraints_array);
if (empty_or_null(distro_constraints_values)) audit(AUDIT_HOST_NOT, 'affected');

var third_party_support = get_kb_item('Host/OS/extended-third-party');
if (!empty_or_null(third_party_support)) {
    var third_party_vendors = distro_constraints_values['third_party'];
    if (!empty_or_null(third_party_vendors)) {
        var vendor;
        foreach vendor (third_party_vendors) {
            if (vendor == third_party_support) exit(0, 'A third party management patch is available for this vulnerability from ' + vendor + '.\n');
        }
    }
}

var report = linux_unpatched::check_unpatched_constraints(distro_constraints_values:distro_constraints_values);

if (!empty_or_null(report))
{
  security_report_v4(
      port       : 0,
      severity   : SECURITY_WARNING,
      extra      : report
  );
  exit(0);
}
else
{
  audit(AUDIT_HOST_NOT, 'affected');
}

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation