{"id":"DEBIAN-CVE-2026-72353","details":"In the Linux kernel, the following vulnerability has been resolved:  ntfs: avoid stale runlist element dereference in fallocate  ntfs_attr_fallocate() allocates holes and delayed allocations inside initialized size by looking up the current runlist element under ni-\u003erunlist.lock. The returned struct runlist_element is only a borrowed pointer into ni-\u003erunlist.rl. A writer can replace and free that array after the read lock is dropped, so later reads of rl-\u003elcn, rl-\u003elength and rl-\u003evcn can touch freed memory.  The buggy scenario involves two paths, with each column showing the order within that path:  ntfs_attr_fallocate():   1. Take ni-\u003erunlist.lock for read.   2. Get rl from ntfs_attr_find_vcn_nolock().   3. Drop ni-\u003erunlist.lock.   4. Read rl-\u003elcn, rl-\u003elength and rl-\u003evcn.  mmap page_mkwrite:   1. Enter ntfs_filemap_page_mkwrite().   2. Reach __ntfs_write_iomap_begin() and ntfs_attr_map_cluster().   3. Merge allocation state with ntfs_runlists_merge().   4. Reallocate ni-\u003erunlist.rl in ntfs_rl_realloc(), freeing the old array.  Validation reproduced this kernel report: BUG: KASAN: slab-use-after-free in ntfs_attr_fallocate+0xbb8/0xd00  Call Trace:  \u003cTASK\u003e  dump_stack_lvl+0x66/0xa0  print_report+0xce/0x630  ? ntfs_attr_fallocate+0xbb8/0xd00  ? srso_alias_return_thunk+0x5/0xfbef5  ? __virt_addr_valid+0x20d/0x410  ? ntfs_attr_fallocate+0xbb8/0xd00  kasan_report+0xe0/0x110  ? ntfs_attr_fallocate+0xbb8/0xd00  ntfs_attr_fallocate+0xbb8/0xd00  ? lock_acquire+0x2b8/0x2f0  ? __pfx_ntfs_attr_fallocate+0x10/0x10  ? 0xffffffffc0000095  ? down_write+0x10d/0x1e0  ntfs_fallocate+0x5c9/0x1d00  ? __pfx_ntfs_fallocate+0x10/0x10  ? srso_alias_return_thunk+0x5/0xfbef5  ? lock_acquire+0x2b8/0x2f0  ? srso_alias_return_thunk+0x5/0xfbef5  ? selinux_file_permission+0x3a7/0x510  vfs_fallocate+0x29d/0xd30  __x64_sys_fallocate+0xc7/0x150  ? do_syscall_64+0x81/0x6a0  do_syscall_64+0x115/0x6a0  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Allocated by task 410:  kasan_save_stack+0x33/0x60  kasan_save_track+0x14/0x30  __kasan_kmalloc+0xaa/0xb0  __kvmalloc_node_noprof+0x353/0x920  ntfs_rl_realloc+0x3f/0x110  ntfs_runlists_merge+0xaa3/0x3010  ntfs_attr_map_cluster+0x4e5/0xf80  ntfs_attr_fallocate+0x53f/0xd00  ntfs_fallocate+0x5c9/0x1d00  vfs_fallocate+0x29d/0xd30  __x64_sys_fallocate+0xc7/0x150  do_syscall_64+0x115/0x6a0  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 424:  kasan_save_stack+0x33/0x60  kasan_save_track+0x14/0x30  kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x5f/0x80  kfree+0x307/0x580  ntfs_rl_realloc+0x6f/0x110  ntfs_runlists_merge+0x7b1/0x3010  ntfs_attr_map_cluster+0x4e5/0xf80  __ntfs_write_iomap_begin+0x8cd/0x2280  iomap_iter+0x6de/0x11e0  iomap_page_mkwrite+0x391/0x650  ntfs_filemap_page_mkwrite+0x1ac/0x400  do_page_mkwrite+0x15c/0x280  __handle_mm_fault+0xd6d/0x1ca0  handle_mm_fault+0x19c/0x470  do_user_addr_fault+0x23b/0x9c0  exc_page_fault+0x5c/0xc0  asm_exc_page_fault+0x26/0x30  Fix this by copying the needed runlist fields while the read lock is still held and using only those scalar snapshots after unlocking.  After the snapshot, ntfs_attr_map_cluster() can also find that the range is already mapped and return balloc=false. Only call ntfs_dio_zero_range() when new clusters were allocated, matching the write iomap path and preserving the zero-newly-allocated-holes behavior.","modified":"2026-09-14T17:03:47.224888624Z","published":"2026-08-15T06:22:08.730Z","upstream":["CVE-2026-72353"],"references":[{"type":"ADVISORY","url":"https://security-tracker.debian.org/tracker/CVE-2026-72353"}],"affected":[{"package":{"name":"linux","ecosystem":"Debian:14","purl":"pkg:deb/debian/linux?arch=source&distro=forky"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.1.5-1"}]}],"versions":["6.12.100-1","6.12.101-1","6.12.105-1","6.12.107-1","6.12.38-1","6.12.41-1","6.12.43-1","6.12.43-1~bpo12+1","6.12.48-1","6.12.57-1","6.12.57-1~bpo12+1","6.12.63-1","6.12.63-1~bpo12+1","6.12.69-1","6.12.69-1~bpo12+1","6.12.73-1","6.12.73-1~bpo12+1","6.12.74-1","6.12.74-2","6.12.74-2~bpo12+1","6.12.85-1","6.12.85-1~bpo12+1","6.12.86-1","6.12.86-1~bpo12+1","6.12.88-1","6.12.88-1~bpo12+1","6.12.90-1","6.12.90-1~bpo12+1","6.12.90-2","6.12.90-2~bpo12+1","6.12.94-1","6.12.94-1~bpo12+1","6.12.95-1","6.12.95-1~bpo12+1","6.12.96-1","6.13.10-1~exp1","6.13.11-1~exp1","6.13.2-1~exp1","6.13.3-1~exp1","6.13.4-1~exp1","6.13.5-1~exp1","6.13.6-1~exp1","6.13.7-1~exp1","6.13.8-1~exp1","6.13.9-1~exp1","6.13~rc6-1~exp1","6.13~rc7-1~exp1","6.14.3-1~exp1","6.14.5-1~exp1","6.14.6-1~exp1","6.15-1~exp1","6.15.1-1~exp1","6.15.2-1~exp1","6.15.3-1~exp1","6.15.4-1~exp1","6.15.5-1~exp1","6.15.6-1~exp1","6.15~rc7-1~exp1","6.16-1~exp1","6.16.1-1~exp1","6.16.10-1","6.16.11-1","6.16.12-1","6.16.12-1~bpo13+1","6.16.12-2","6.16.3-1","6.16.3-1~bpo13+1","6.16.5-1","6.16.6-1","6.16.7-1","6.16.8-1","6.16.9-1","6.16~rc7-1~exp1","6.17.10-1","6.17.11-1","6.17.12-1","6.17.13-1","6.17.13-1~bpo13+1","6.17.2-1~exp1","6.17.5-1~exp1","6.17.6-1","6.17.7-1","6.17.7-2","6.17.8-1","6.17.8-1~bpo13+1","6.17.9-1","6.18.1-1~exp1","6.18.10-1","6.18.12-1","6.18.12-1~bpo13+1","6.18.13-1","6.18.14-1","6.18.15-1","6.18.15-1~bpo13+1","6.18.2-1~exp1","6.18.3-1","6.18.5-1","6.18.5-1~bpo13+1","6.18.8-1","6.18.9-1","6.18.9-1~bpo13+1","6.18~rc4-1~exp1","6.18~rc4-1~exp2","6.18~rc5-1~exp1","6.18~rc6-1~exp1","6.18~rc7-1~exp1","6.19-1~exp1","6.19.10-1","6.19.10-1~bpo13+1","6.19.11-1","6.19.11-1~bpo13+1","6.19.12-1","6.19.13-1","6.19.13-1~bpo13+1","6.19.14-1","6.19.14-1~bpo13+1","6.19.2-1~exp1","6.19.3-1~exp1","6.19.4-1~exp1","6.19.5-1~exp1","6.19.6-1","6.19.6-2","6.19.6-2~bpo13+1","6.19.8-1","6.19.8-1~bpo13+1","6.19~rc4-1~exp1","6.19~rc5-1~exp1","6.19~rc6-1~exp1","6.19~rc7-1~exp1","6.19~rc8-1~exp1","7.0-1~exp1","7.0.1-1~exp1","7.0.10-1","7.0.10-1~bpo13+1","7.0.12-1","7.0.12-2","7.0.12-2~bpo13+1","7.0.13-1","7.0.13-1~bpo13+1","7.0.14-1","7.0.3-1","7.0.4-1","7.0.4-1~bpo13+1","7.0.7-1","7.0.7-1~bpo13+1","7.0.9-1","7.0.9-1~bpo13+1","7.1.1-1~exp1","7.1.2-1~exp1","7.1.3-1","7.1.3-1+sunvdc","7.1.3-1~bpo13+1","7.1.4-1","7.1~rc2-1~exp1","7.1~rc3-1~exp1","7.1~rc4-1~exp1","7.1~rc4-1~exp2","7.1~rc5-1~exp1","7.1~rc7-1~exp1"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-72353.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}