Lucene search
+L

Linux Distros Unpatched Vulnerability : CVE-2026-96596

🗓️ 15 Oct 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 2 Views

Infinite loop in Erlang OTP stdlib and hexpm modules allows DoS via crafted tar archive.

Related
Refs
Code
ReporterTitlePublishedViews
Family
circl
Circl
CVE-2026-96596
14 Oct 202622:45
–circl
cve
CVE
CVE-2026-96596
14 Oct 202616:56
–cve
cvelist
Cvelist
CVE-2026-96596 erl_tar:extract/2 loops forever on a GNU sparse member with a trailing hole
14 Oct 202616:56
–cvelist
debiancve
Debian CVE
CVE-2026-96596
14 Oct 202616:56
–debiancve
euvd
EUVD
EUVD-2026-101390
14 Oct 202616:56
–euvd
mend
Mend
CVE-2026-96596
14 Oct 202616:56
–mend
nvd
NVD
CVE-2026-96596
14 Oct 202617:20
–nvd
osv_azl
osv_azl
AZL-108207 CVE-2026-96596 affecting package erlang 26.2.5.21-6
14 Oct 202617:20
–osv_azl
osv_cve
osv_cve
CVE-2026-96596 erl_tar:extract/2 loops forever on a GNU sparse member with a trailing hole
14 Oct 202616:56
–osv_cve
osv_debian
osv_debian
DEBIAN-CVE-2026-96596
14 Oct 202617:20
–osv_debian
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(366165);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/10/15");

  script_cve_id("CVE-2026-96596");

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

  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.

  - Loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in Erlang OTP stdlib (erl_tar
    module), hexpm hex_core (hex_erl_tar module), hexpm hex (mix_hex_erl_tar module) and erlang rebar3
    (r3_hex_erl_tar module) allows an attacker who supplies a tar archive to cause a denial of service via a
    crafted GNU sparse member. When erl_tar:extract/1,2 writes a member to disk, erl_tar:stream_to_file_loop/3
    reads it in chunks of 65536 bytes by default. For a GNU sparse member whose sparse map ends before its
    real size, erl_tar:do_sparse_read/3 matches its trailing-hole clause before its zero-length clause. After
    the chunk is used up, the trailing-hole clause reads zero bytes, does not advance the position, and
    recurses forever. A 2048-byte archive keeps the extracting process and one scheduler busy until the
    process is killed. The {max_size, N} option prevents this only when N is below the real size of the
    member. Extraction with the memory option is not affected. hex_core ships its own copy of erl_tar as
    hex_erl_tar, and Hex and rebar3 ship hex_core with prefixed module names (mix_hex_erl_tar and
    r3_hex_erl_tar). These copies contain the same code and do not call stdlib's erl_tar, so they are affected
    on any OTP version. OTP 28 is not affected, but an application running on OTP 28 is affected if it
    extracts archives through an affected version of hex_core, Hex or rebar3. This issue affects OTP from OTP
    29.0 before OTP 29.1.2, corresponding to stdlib from 8.0 before 8.1.1, and rebar3 from 3.27.1 onward, and
    hex from 2.4.2 before 2.5.3; hex_core: from 0.14.0 before 0.20.1. (CVE-2026-96596)

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-96596");
  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:H/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:R/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:"cvss4_vector", value:"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N");
  script_set_attribute(attribute:"cvss4_threat_vector", value:"CVSS:4.0/E:U");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-96596");

  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/10/14");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/10/15");

  script_set_attribute(attribute:"plugin_type", value:"local");
  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:erlang");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:erlang-hex");
  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-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-14": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "14",
        "pkgs": [
          {"reference": "erlang"},
          {"reference": "erlang-asn1"},
          {"reference": "erlang-base"},
          {"reference": "erlang-common-test"},
          {"reference": "erlang-crypto"},
          {"reference": "erlang-debugger"},
          {"reference": "erlang-dev"},
          {"reference": "erlang-dialyzer"},
          {"reference": "erlang-diameter"},
          {"reference": "erlang-doc"},
          {"reference": "erlang-edoc"},
          {"reference": "erlang-eldap"},
          {"reference": "erlang-et"},
          {"reference": "erlang-eunit"},
          {"reference": "erlang-examples"},
          {"reference": "erlang-ftp"},
          {"reference": "erlang-hex"},
          {"reference": "erlang-inets"},
          {"reference": "erlang-jinterface"},
          {"reference": "erlang-megaco"},
          {"reference": "erlang-mnesia"},
          {"reference": "erlang-mode"},
          {"reference": "erlang-nox"},
          {"reference": "erlang-observer"},
          {"reference": "erlang-odbc"},
          {"reference": "erlang-os-mon"},
          {"reference": "erlang-parsetools"},
          {"reference": "erlang-public-key"},
          {"reference": "erlang-reltool"},
          {"reference": "erlang-runtime-tools"},
          {"reference": "erlang-snmp"},
          {"reference": "erlang-src"},
          {"reference": "erlang-ssh"},
          {"reference": "erlang-ssl"},
          {"reference": "erlang-syntax-tools"},
          {"reference": "erlang-tftp"},
          {"reference": "erlang-tools"},
          {"reference": "erlang-wx"},
          {"reference": "erlang-x11"},
          {"reference": "erlang-xmerl"}
        ]
      }
    ]
  }
};

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

15 Oct 2026 00:00Current
5.8Medium risk
Vulners AI Score5.8
CVSS 45.9
EPSS0.00183
SSVC
2