Lucene search
+L

Linux Distros Unpatched Vulnerability : CVE-2026-93800

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

btrfs use-after-free and double free in insert_dirty_subvol during relocation on Linux.

Related
Refs
Code
ReporterTitlePublishedViews
Family
cve
CVE
CVE-2026-93800
24 Sep 202616:02
–cve
cvelist
Cvelist
CVE-2026-93800 btrfs: fix use-after-free on reloc root after error in insert_dirty_subvol()
24 Sep 202616:02
–cvelist
debiancve
Debian CVE
CVE-2026-93800
24 Sep 202616:02
–debiancve
euvd
EUVD
EUVD-2026-86187
24 Sep 202616:02
–euvd
nvd
NVD
CVE-2026-93800
24 Sep 202617:17
–nvd
osv
OSV
AZL-103991 CVE-2026-93800 affecting package kernel 6.6.157.1-1
24 Sep 202617:17
–osv
osv
OSV
DEBIAN-CVE-2026-93800
24 Sep 202617:17
–osv
osv
OSV
UBUNTU-CVE-2026-93800
24 Sep 202600:00
–osv
ubuntucve
UbuntuCve
CVE-2026-93800
24 Sep 202600:00
–ubuntucve
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

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

  script_cve_id("CVE-2026-93800");

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

  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.

  - btrfs: fix use-after-free on reloc root after error in insert_dirty_subvol() If during relocation we fail
    in insert_dirty_subvol() because btrfs_update_reloc_root() returned an error, we will leave a root's
    reloc_root field pointing to a reloc root that was freed instead of NULL, resulting later in a use-after-
    free, or double free attempt during unmount. The sequence of steps is this: 1) During relocation the call
    to btrfs_update_reloc_root() in insert_dirty_subvol() fails, so insert_dirty_subvol() returns the error to
    merge_reloc_root() without adding the root to the list rc->dirty_subvol_roots; 2) Then merge_reloc_root()
    aborts the current transaction because insert_dirty_subvol() returned an error; 3) Up the call chain,
    merge_reloc_roots() gets the error, adds the reloc root for root X to the local reloc_roots list and jumps
    to the 'out' label, where it calls free_reloc_roots() to free all the reloc roots in the local reloc_roots
    list. This frees the reloc root for root X; 4) We go up the call chain to relocate_block_group() which
    calls clean_dirty_subvols() to go over dirty roots and set their ->reloc_root field to NULL, but root X is
    not in the dirty_subvol_roots list, so its ->reloc_root still points to a reloc root; 5) Relocation
    finishes, with an error and a transaction abort, but the ->reloc_root field for root X still points to the
    reloc root that was freed in step 3; 6) When unmounting the fs we end up calling: btrfs_free_fs_roots()
    btrfs_drop_and_free_fs_root() --> calls btrfs_put_root() against root X's ->reloc_root which is not NULL
    and points to the already freed reloc root in step 4 above Resulting in a use-after-free to a double free
    attempt. Syzbot reported this with the following dmesg/syslog: [ 106.004389][ T5339] BTRFS error (device
    loop0 state A): Transaction aborted (error -5) [ 106.014266][ T5339] BTRFS: error (device loop0 state A)
    in merge_reloc_root:1655: errno=-5 IO failure [ 106.021891][ T1061] BTRFS error (device loop0 state A):
    error while writing out transaction: -5 [ 106.026964][ T1061] BTRFS warning (device loop0 state A):
    Skipping commit of aborted transaction. [ 106.033807][ T5340] BTRFS error (device loop0 state A): bdev
    /dev/loop0 errs: wr 3, rd 0, flush 0, corrupt 0, gen 0 [ 106.039265][ T1061] BTRFS: error (device loop0
    state A) in cleanup_transaction:2067: errno=-5 IO failure [ 106.044382][ T5339] BTRFS info (device loop0
    state EA): forced readonly [ 106.074329][ T5339] BTRFS: error (device loop0 state EA) in
    merge_reloc_roots:1887: errno=-5 IO failure [ 106.081004][ T5356] BTRFS info (device loop0 state EA):
    scrub: started on devid 1 [ 106.085611][ T5339] BTRFS info (device loop0 state EA): balance: ended with
    status: -30 [ 106.089517][ T5356] BTRFS info (device loop0 state EA): scrub: not finished on devid 1 with
    status: -30 [ 106.662365][ T5338] BTRFS info (device loop0 state EA): last unmount of filesystem
    3a375e4e-b156-4d76-a2ad-16e198ce1409 [ 106.682946][ T5338]
    ================================================================== [ 106.686574][ T5338] BUG: KASAN: slab-
    use-after-free in btrfs_put_root+0x2f/0x250 [ 106.690090][ T5338] Write of size 4 at addr ffff88803f978630
    by task syz.0.0/5338 [ 106.693173][ T5338] [ 106.694279][ T5338] CPU: 0 UID: 0 PID: 5338 Comm: syz.0.0 Not
    tainted syzkaller #0 PREEMPT(full) [ 106.694293][ T5338] Hardware name: QEMU Standard PC (Q35 + ICH9,
    2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 106.694300][ T5338] Call Trace: [ 106.694308][ T5338]
    <TASK> [ 106.694314][ T5338] dump_stack_lvl+0xe8/0x150 [ 106.694331][ T5338]
    print_address_description+0x55/0x1e0 [ 106.694343][ T5338] ? btrfs_put_root+0x2f/0x250 [ 106.694358][
    T5338] print_report+0x58/0x70 [ 106. ---truncated--- (CVE-2026-93800)

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-93800");
  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-93800");

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

  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:"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-12", "Host/OS/Debian Linux-13");

  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": "btrfs-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "cdrom-core-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "ext4-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "fat-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "isofs-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "jfs-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "kernel-image-6.1.0-50-alpha-generic-di"},
          {"reference": "linux-doc"},
          {"reference": "linux-doc-6.1"},
          {"reference": "linux-headers-6.1.0"},
          {"reference": "linux-source"},
          {"reference": "linux-source-6.1"},
          {"reference": "linux-support-6.1.0"},
          {"reference": "loop-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "nic-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "nic-shared-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "nic-wireless-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "pata-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "ppp-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "scsi-core-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "scsi-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "scsi-nic-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "serial-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "usb-serial-modules-6.1.0-50-alpha-generic-di"},
          {"reference": "xfs-modules-6.1.0-50-alpha-generic-di"}
        ]
      }
    ]
  },
  "Debian Linux-13": {
    "package_manager": "dpkg-l",
    "constraints": [
      {
        "release": "13",
        "pkgs": [
          {"reference": "bpftool"},
          {"reference": "hyperv-daemons"},
          {"reference": "intel-sdsi"},
          {"reference": "libcpupower-dev"},
          {"reference": "libcpupower1"},
          {"reference": "linux-bpf-dev"},
          {"reference": "linux-config-6.12"},
          {"reference": "linux-cpupower"},
          {"reference": "linux-doc"},
          {"reference": "linux-doc-6.12"},
          {"reference": "linux-headers-4kc-malta"},
          {"reference": "linux-headers-5kc-malta"},
          {"reference": "linux-headers-6.12.107+deb13-4kc-malta"},
          {"reference": "linux-headers-6.12.107+deb13-5kc-malta"},
          {"reference": "linux-headers-6.12.107+deb13-alpha-generic"},
          {"reference": "linux-headers-6.12.107+deb13-alpha-smp"},
          {"reference": "linux-headers-6.12.107+deb13-amd64"},
          {"reference": "linux-headers-6.12.107+deb13-arm64"},
          {"reference": "linux-headers-6.12.107+deb13-arm64-16k"},
          {"reference": "linux-headers-6.12.107+deb13-armmp"},
          {"reference": "linux-headers-6.12.107+deb13-armmp-lpae"},
          {"reference": "linux-headers-6.12.107+deb13-cloud-amd64"},
          {"reference": "linux-headers-6.12.107+deb13-cloud-arm64"},
          {"reference": "linux-headers-6.12.107+deb13-common"},
          {"reference": "linux-headers-6.12.107+deb13-common-rt"},
          {"reference": "linux-headers-6.12.107+deb13-loong64"},
          {"reference": "linux-headers-6.12.107+deb13-loongson-3"},
          {"reference": "linux-headers-6.12.107+deb13-m68k"},
          {"reference": "linux-headers-6.12.107+deb13-mips32r2eb"},
          {"reference": "linux-headers-6.12.107+deb13-mips32r2el"},
          {"reference": "linux-headers-6.12.107+deb13-mips64r2eb"}
        ]
      }
    ]
  }
};

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

24 Sep 2026 00:00Current
6.7Medium risk
Vulners AI Score6.7
EPSS0.00166
3