Lucene search
+L

Linux Distros Unpatched Vulnerability : CVE-2026-74702

🗓️ 22 Aug 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 6 Views

vhost-scsi NULL prot_sgl after late T10-PI feature change triggers sg_alloc_table_chained BUG_ON.

Related
Refs
Code
ReporterTitlePublishedViews
Family
cve
CVE
CVE-2026-74702
22 Aug 202615:33
cve
cvelist
Cvelist
CVE-2026-74702 vhost-scsi: reject feature changes after endpoint
22 Aug 202615:33
cvelist
debiancve
Debian CVE
CVE-2026-74702
22 Aug 202615:33
debiancve
euvd
EUVD
EUVD-2026-64389
22 Aug 202615:33
euvd
nvd
NVD
CVE-2026-74702
22 Aug 202616:16
nvd
osv
OSV
DEBIAN-CVE-2026-74702
22 Aug 202616:16
osv
ptsecurity
Positive Technologies
PT-2026-79707
22 Aug 202600:00
ptsecurity
redhatcve
RedhatCVE
CVE-2026-74702
24 Aug 202617:43
redhatcve
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

if (description)
{
  script_id(338943);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/08/22");

  script_cve_id("CVE-2026-74702");

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

  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.

  - vhost-scsi: reject feature changes after endpoint vhost_scsi_setup_vq_cmds() runs from
    VHOST_SCSI_SET_ENDPOINT and allocates each command's protection scatterlist array (prot_sgl) according to
    the acknowledged VIRTIO_SCSI_F_T10_PI bit. The command pools are not rebuilt when VHOST_SET_FEATURES
    changes that bit later. Although virtio feature bits must not change after feature negotiation,
    vhost_scsi_set_features() currently accepts such a request after the endpoint is active and updates
    acked_features. Enabling T10-PI after endpoint setup therefore leaves prot_sgl NULL while the I/O path
    follows the new feature bit. For a 129-page protection payload, vhost_scsi_mapal() passes the missing
    first chunk to sg_alloc_table_chained(): sg_alloc_table_chained(table, 129, first_chunk=NULL,
    nents_first_chunk=inline_sg_cnt) sg_pool_index() then hits: BUG_ON(nents > SG_CHUNK_SIZE); /* 129 > 128 */
    The kernel reported the following call trace and register state: Call Trace: <TASK> ?
    __sg_alloc_table+0x1d8/0x250 ? __pfx_vhost_run_work_list+0x10/0x10 [vhost]
    sg_alloc_table_chained+0x59/0xf0 ? __pfx_sg_pool_alloc+0x10/0x10 ?
    vhost_scsi_calc_sgls.constprop.0+0x43/0x60 [vhost_scsi] vhost_scsi_handle_vq+0xf02/0x1700 [vhost_scsi] ?
    __pfx_vhost_scsi_handle_vq+0x10/0x10 [vhost_scsi] vhost_scsi_handle_kick+0x37/0x50 [vhost_scsi]
    vhost_run_work_list+0x8e/0xd0 [vhost] vhost_task_fn+0xe1/0x210 ret_from_fork+0x348/0x540 </TASK> RIP:
    0010:0x4 CR2 = 0x4 RSP: 0018:ffffc90000dbf940 EFLAGS: 00010202 RAX: ffffffff82396810 RBX: ffff88811dc28b80
    RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000820 RDI: 0000000000000081 VHOST_F_LOG_ALL is
    a vhost-specific runtime feature and remains the only exception. Reject changes to any feature other than
    VHOST_F_LOG_ALL while the endpoint is active. This preserves the existing runtime log toggle while
    preventing feature-dependent command resources and data-path state from becoming inconsistent. Userspace
    must clear the endpoint before changing any other negotiated feature and set the endpoint up again
    afterward. (CVE-2026-74702)

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-74702");
  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:P/I:P/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:H/I:H/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-74702");

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

  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:linux");
  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": "bpftool"},
          {"reference": "hyperv-daemons"},
          {"reference": "intel-sdsi"},
          {"reference": "libcpupower-dev"},
          {"reference": "libcpupower1"},
          {"reference": "linux-base-7.1.8+deb14.1-alpha-generic"},
          {"reference": "linux-base-7.1.8+deb14.1-alpha-smp"},
          {"reference": "linux-base-7.1.8+deb14.1-amd64"},
          {"reference": "linux-base-7.1.8+deb14.1-arm64"},
          {"reference": "linux-base-7.1.8+deb14.1-arm64-16k"},
          {"reference": "linux-base-7.1.8+deb14.1-armmp"},
          {"reference": "linux-base-7.1.8+deb14.1-armmp-lpae"},
          {"reference": "linux-base-7.1.8+deb14.1-cloud-amd64"},
          {"reference": "linux-base-7.1.8+deb14.1-cloud-arm64"},
          {"reference": "linux-base-7.1.8+deb14.1-loong64"},
          {"reference": "linux-base-7.1.8+deb14.1-m68k"},
          {"reference": "linux-base-7.1.8+deb14.1-parisc"},
          {"reference": "linux-base-7.1.8+deb14.1-parisc64"},
          {"reference": "linux-base-7.1.8+deb14.1-powerpc"},
          {"reference": "linux-base-7.1.8+deb14.1-powerpc-smp"},
          {"reference": "linux-base-7.1.8+deb14.1-powerpc64"},
          {"reference": "linux-base-7.1.8+deb14.1-powerpc64-64k"},
          {"reference": "linux-base-7.1.8+deb14.1-powerpc64le"},
          {"reference": "linux-base-7.1.8+deb14.1-powerpc64le-64k"},
          {"reference": "linux-base-7.1.8+deb14.1-riscv64"},
          {"reference": "linux-base-7.1.8+deb14.1-rt-amd64"},
          {"reference": "linux-base-7.1.8+deb14.1-rt-arm64"},
          {"reference": "linux-base-7.1.8+deb14.1-s390x"},
          {"reference": "linux-base-7.1.8+deb14.1-sh7751r"},
          {"reference": "linux-base-7.1.8+deb14.1-sparc64"}
        ]
      }
    ]
  }
};

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

22 Aug 2026 00:00Current
5.5Medium risk
Vulners AI Score5.5
EPSS0.00166
6