{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2023-53194",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2023-53194"
  ],
  "published": "2025-09-15T14:10:32Z",
  "summary": "fs/ntfs3: Add length check in indx_get_root",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nfs/ntfs3: Add length check in indx_get_root\n\nThis adds a length check to guarantee the retrieved index root is legit.\n\n[  162.459513] BUG: KASAN: use-after-free in hdr_find_e.isra.0+0x10c/0x320\n[  162.460176] Read of size 2 at addr ffff8880037bca99 by task mount/243\n[  162.460851]\n[  162.461252] CPU: 0 PID: 243 Comm: mount Not tainted 6.0.0-rc7 #42\n[  162.461744] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014\n[  162.462609] Call Trace:\n[  162.462954]  <TASK>\n[  162.463276]  dump_stack_lvl+0x49/0x63\n[  162.463822]  print_report.cold+0xf5/0x689\n[  162.464608]  ? unwind_get_return_address+0x3a/0x60\n[  162.465766]  ? hdr_find_e.isra.0+0x10c/0x320\n[  162.466975]  kasan_report+0xa7/0x130\n[  162.467506]  ? _raw_spin_lock_irq+0xc0/0xf0\n[  162.467998]  ? hdr_find_e.isra.0+0x10c/0x320\n[  162.468536]  __asan_load2+0x68/0x90\n[  162.468923]  hdr_find_e.isra.0+0x10c/0x320\n[  162.469282]  ? cmp_uints+0xe0/0xe0\n[  162.469557]  ? cmp_sdh+0x90/0x90\n[  162.469864]  ? ni_find_attr+0x214/0x300\n[  162.470217]  ? ni_load_mi+0x80/0x80\n[  162.470479]  ? entry_SYSCALL_64_after_hwframe+0x63/0xcd\n[  162.470931]  ? ntfs_bread_run+0x190/0x190\n[  162.471307]  ? indx_get_root+0xe4/0x190\n[  162.471556]  ? indx_get_root+0x140/0x190\n[  162.471833]  ? indx_init+0x1e0/0x1e0\n[  162.472069]  ? fnd_clear+0x115/0x140\n[  162.472363]  ? _raw_spin_lock_irqsave+0x100/0x100\n[  162.472731]  indx_find+0x184/0x470\n[  162.473461]  ? sysvec_apic_timer_interrupt+0x57/0xc0\n[  162.474429]  ? indx_find_buffer+0x2d0/0x2d0\n[  162.474704]  ? do_syscall_64+0x3b/0x90\n[  162.474962]  dir_search_u+0x196/0x2f0\n[  162.475381]  ? ntfs_nls_to_utf16+0x450/0x450\n[  162.475661]  ? ntfs_security_init+0x3d6/0x440\n[  162.475906]  ? is_sd_valid+0x180/0x180\n[  162.476191]  ntfs_extend_init+0x13f/0x2c0\n[  162.476496]  ? ntfs_fix_post_read+0x130/0x130\n[  162.476861]  ? iput.part.0+0x286/0x320\n[  162.477325]  ntfs_fill_super+0x11e0/0x1b50\n[  162.477709]  ? put_ntfs+0x1d0/0x1d0\n[  162.477970]  ? vsprintf+0x20/0x20\n[  162.478258]  ? set_blocksize+0x95/0x150\n[  162.478538]  get_tree_bdev+0x232/0x370\n[  162.478789]  ? put_ntfs+0x1d0/0x1d0\n[  162.479038]  ntfs_fs_get_tree+0x15/0x20\n[  162.479374]  vfs_get_tree+0x4c/0x130\n[  162.479729]  path_mount+0x654/0xfe0\n[  162.480124]  ? putname+0x80/0xa0\n[  162.480484]  ? finish_automount+0x2e0/0x2e0\n[  162.480894]  ? putname+0x80/0xa0\n[  162.481467]  ? kmem_cache_free+0x1c4/0x440\n[  162.482280]  ? putname+0x80/0xa0\n[  162.482714]  do_mount+0xd6/0xf0\n[  162.483264]  ? path_mount+0xfe0/0xfe0\n[  162.484782]  ? __kasan_check_write+0x14/0x20\n[  162.485593]  __x64_sys_mount+0xca/0x110\n[  162.486024]  do_syscall_64+0x3b/0x90\n[  162.486543]  entry_SYSCALL_64_after_hwframe+0x63/0xcd\n[  162.487141] RIP: 0033:0x7f9d374e948a\n[  162.488324] Code: 48 8b 0d 11 fa 2a 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 49 89 ca b8 a5 00 00 008\n[  162.489728] RSP: 002b:00007ffe30e73d18 EFLAGS: 00000206 ORIG_RAX: 00000000000000a5\n[  162.490971] RAX: ffffffffffffffda RBX: 0000561cdb43a060 RCX: 00007f9d374e948a\n[  162.491669] RDX: 0000561cdb43a260 RSI: 0000561cdb43a2e0 RDI: 0000561cdb442af0\n[  162.492050] RBP: 0000000000000000 R08: 0000561cdb43a280 R09: 0000000000000020\n[  162.492459] R10: 00000000c0ed0000 R11: 0000000000000206 R12: 0000561cdb442af0\n[  162.493183] R13: 0000561cdb43a260 R14: 0000000000000000 R15: 00000000ffffffff\n[  162.493644]  </TASK>\n[  162.493908]\n[  162.494214] The buggy address belongs to the physical page:\n[  162.494761] page:000000003e38a3d5 refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x37bc\n[  162.496064] flags: 0xfffffc0000000(node=0|zone=1|lastcpupid=0x1fffff)\n[  162.497278] raw: 000fffffc0000000 ffffea00000df1c8 ffffea00000df008 0000000000000000\n[  162.498928] raw: 0000000000000000 0000000000240000 00000000ffffffff 0000000000000000\n[  162.500542] page dumped becau\n---truncated---",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:12",
        "name": "linux"
      },
      "versions": [
        "1:6.1.21-1+rpt1",
        "1:6.1.47-1+rpt2",
        "1:6.1.47-1+rpt4",
        "1:6.1.54-1+rpt2",
        "1:6.1.58-1+rpt2",
        "1:6.1.63-1+rpt1",
        "1:6.1.73-1+rpt1"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.1.0-rpi1-rpi-v6",
            "binary_version": "1:6.1.21-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi1-rpi-v7",
            "binary_version": "1:6.1.21-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi1-rpi-v7l",
            "binary_version": "1:6.1.21-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi1-rpi-v8",
            "binary_version": "1:6.1.21-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi2-rpi-v6",
            "binary_version": "1:6.1.47-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi2-rpi-v7",
            "binary_version": "1:6.1.47-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi2-rpi-v7l",
            "binary_version": "1:6.1.47-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi2-rpi-v8",
            "binary_version": "1:6.1.47-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-2712",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v6",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7l",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v8",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi4-rpi-2712",
            "binary_version": "1:6.1.54-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi4-rpi-v6",
            "binary_version": "1:6.1.54-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi4-rpi-v7",
            "binary_version": "1:6.1.54-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi4-rpi-v7l",
            "binary_version": "1:6.1.54-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi4-rpi-v8",
            "binary_version": "1:6.1.54-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi6-rpi-2712",
            "binary_version": "1:6.1.58-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi6-rpi-v6",
            "binary_version": "1:6.1.58-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi6-rpi-v7",
            "binary_version": "1:6.1.58-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi6-rpi-v7l",
            "binary_version": "1:6.1.58-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi6-rpi-v8",
            "binary_version": "1:6.1.58-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi7-rpi-2712",
            "binary_version": "1:6.1.63-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi7-rpi-v6",
            "binary_version": "1:6.1.63-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi7-rpi-v7",
            "binary_version": "1:6.1.63-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi7-rpi-v7l",
            "binary_version": "1:6.1.63-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi7-rpi-v8",
            "binary_version": "1:6.1.63-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi8-rpi-2712",
            "binary_version": "1:6.1.73-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi8-rpi-v6",
            "binary_version": "1:6.1.73-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi8-rpi-v7",
            "binary_version": "1:6.1.73-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi8-rpi-v7l",
            "binary_version": "1:6.1.73-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi8-rpi-v8",
            "binary_version": "1:6.1.73-1+rpt1"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.1.21-1+rpt1": {
            "linux_commit": "0afb5e98488aed7017b9bf321b575d0177feb7ed",
            "upstream_version": "6.1.21",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.81"
          },
          "1:6.1.47-1+rpt2": {
            "linux_commit": "655fc658a15ae7a6f37103754adb39ba52a9a14e",
            "upstream_version": "6.1.47",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.81"
          },
          "1:6.1.47-1+rpt4": {
            "linux_commit": "655fc658a15ae7a6f37103754adb39ba52a9a14e",
            "upstream_version": "6.1.47",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.81",
            "compiled_filter": false
          },
          "1:6.1.54-1+rpt2": {
            "linux_commit": "2906f7abdc03d4a92b6b0e2e0c87ea2a9dffe8f7",
            "upstream_version": "6.1.54",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.81"
          },
          "1:6.1.58-1+rpt2": {
            "linux_commit": "ccf1586ad0663fa91238ac56abf6340d6d740d18",
            "upstream_version": "6.1.58",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.81"
          },
          "1:6.1.63-1+rpt1": {
            "linux_commit": null,
            "upstream_version": "6.1.63",
            "assessment": "upstream version (no usable Linux commit)",
            "upstream_fixed": "6.1.81"
          },
          "1:6.1.73-1+rpt1": {
            "linux_commit": null,
            "upstream_version": "6.1.73",
            "assessment": "upstream version (no usable Linux commit)",
            "upstream_fixed": "6.1.81"
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2023-53194"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/85afd3007465f8bc74afffbf5b84ec29f5310b03"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/0d04e45c65f0785e558b93d2631d58680f263e10"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/eb5b59931d20f3b02076fae49e85282310b12012"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/08e8cf5f2d9ec383a2e339a2711b62a54ff3fba0"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-08-05T11:24:39Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 8.4,
      "cvss_v3_severity": "High",
      "scenario": "AV:L - The flaw is reached only by presenting a crafted NTFS volume to the local kernel (USB/loop/NBD image) so mount(2) runs ntfs_fill_super() and index walks in fs/ntfs3; no network protocol handler is involved.\nAC:L - The oversized INDEX_ROOT ihdr.used field is fully attacker-authored on-disk metadata, so the out-of-bounds walk in hdr_find_e() is deterministic with no race or uncontrollable memory-layout precondition.\nPR:N - The attacker needs no account on the target\u2014only a malicious NTFS image that root, udisks2/systemd automount, or an image-handling service mounts on their behalf; every privileged step is performed by the victim system.\nUI:N - On kiosks/NAS/infotainment systems that automount removable media, insertion alone runs ntfs_extend_init()\u2192indx_find() during mount with no further human action; the crash reproduces at mount time without a subsequent open.\nS:U - The OOB/UAF accesses corrupt host kernel heap within the same security authority as ntfs3; this is not a VM escape, IOMMU bypass, or sandbox boundary crossing.\nC:H - KASAN reports a use-after-free/OOB read in hdr_find_e() past the resident attribute into freed pages, and those bytes are interpreted as NTFS_DE keys/refs compared and consumed by directory lookup\u2014an unbounded kernel memory disclosure per UAF/OOB-read guidance.\nI:H - The same unchecked indx_get_root() feeds indx_insert_into_root()/hdr_insert_de(), which memmove/memcpy through the OOB entry pointer into the MFT-record slab, yielding a heap write primitive consistent with UAF and related ntfs3 index CVEs.\nA:H - The documented mount path produces a KASAN use-after-free fault in hdr_find_e() that oopses/panics the kernel, fully denying availability."
    }
  }
}
