{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-53692","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-10-22T13:21:37.344Z","datePublished":"2025-10-22T13:23:34.702Z","dateUpdated":"2026-08-05T09:15:34.038Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T09:15:34.038Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix use-after-free read in ext4_find_extent for bigalloc + inline\n\nSyzbot found the following issue:\nloop0: detected capacity change from 0 to 2048\nEXT4-fs (loop0): mounted filesystem 00000000-0000-0000-0000-000000000000 without journal. Quota mode: none.\n==================================================================\nBUG: KASAN: use-after-free in ext4_ext_binsearch_idx fs/ext4/extents.c:768 [inline]\nBUG: KASAN: use-after-free in ext4_find_extent+0x76e/0xd90 fs/ext4/extents.c:931\nRead of size 4 at addr ffff888073644750 by task syz-executor420/5067\n\nCPU: 0 PID: 5067 Comm: syz-executor420 Not tainted 6.2.0-rc1-syzkaller #0\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022\nCall Trace:\n <TASK>\n __dump_stack lib/dump_stack.c:88 [inline]\n dump_stack_lvl+0x1b1/0x290 lib/dump_stack.c:106\n print_address_description+0x74/0x340 mm/kasan/report.c:306\n print_report+0x107/0x1f0 mm/kasan/report.c:417\n kasan_report+0xcd/0x100 mm/kasan/report.c:517\n ext4_ext_binsearch_idx fs/ext4/extents.c:768 [inline]\n ext4_find_extent+0x76e/0xd90 fs/ext4/extents.c:931\n ext4_clu_mapped+0x117/0x970 fs/ext4/extents.c:5809\n ext4_insert_delayed_block fs/ext4/inode.c:1696 [inline]\n ext4_da_map_blocks fs/ext4/inode.c:1806 [inline]\n ext4_da_get_block_prep+0x9e8/0x13c0 fs/ext4/inode.c:1870\n ext4_block_write_begin+0x6a8/0x2290 fs/ext4/inode.c:1098\n ext4_da_write_begin+0x539/0x760 fs/ext4/inode.c:3082\n generic_perform_write+0x2e4/0x5e0 mm/filemap.c:3772\n ext4_buffered_write_iter+0x122/0x3a0 fs/ext4/file.c:285\n ext4_file_write_iter+0x1d0/0x18f0\n call_write_iter include/linux/fs.h:2186 [inline]\n new_sync_write fs/read_write.c:491 [inline]\n vfs_write+0x7dc/0xc50 fs/read_write.c:584\n ksys_write+0x177/0x2a0 fs/read_write.c:637\n do_syscall_x64 arch/x86/entry/common.c:50 [inline]\n do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80\n entry_SYSCALL_64_after_hwframe+0x63/0xcd\nRIP: 0033:0x7f4b7a9737b9\nRSP: 002b:00007ffc5cac3668 EFLAGS: 00000246 ORIG_RAX: 0000000000000001\nRAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f4b7a9737b9\nRDX: 00000000175d9003 RSI: 0000000020000200 RDI: 0000000000000004\nRBP: 00007f4b7a933050 R08: 0000000000000000 R09: 0000000000000000\nR10: 000000000000079f R11: 0000000000000246 R12: 00007f4b7a9330e0\nR13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000\n </TASK>\n\nAbove issue is happens when enable bigalloc and inline data feature. As\ncommit 131294c35ed6 fixed delayed allocation bug in ext4_clu_mapped for\nbigalloc + inline. But it only resolved issue when has inline data, if\ninline data has been converted to extent(ext4_da_convert_inline_data_to_extent)\nbefore writepages, there is no EXT4_STATE_MAY_INLINE_DATA flag. However\ni_data is still store inline data in this scene. Then will trigger UAF\nwhen find extent.\nTo resolve above issue, there is need to add judge \"ext4_has_inline_data(inode)\"\nin ext4_clu_mapped()."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerability is reached through the write(2) syscall on a locally mounted ext4 filesystem via ext4_da_write_begin → ext4_da_get_block_prep → ext4_clu_mapped. No network or remote protocol is involved.\nAC:L - The trigger is fully deterministic and entirely under attacker control — write a small file so it is stored inline, extend it to start delayed inline-to-extent conversion, then write again before writeback destroys the inline data; there is no race against an attacker-uncontrollable condition, and the header bytes parsed as an extent root are the attacker's own file contents.\nPR:L - On a filesystem created with bigalloc + inline_data (a combination mke2fs accepts and the kernel mount path does not reject), any unprivileged user with write access to a regular file can trigger the bug with ordinary buffered writes; no capability, mount privilege, or root access is required.\nUI:N - The attacker performs all the writes themselves in their own process; no victim action, no mount by another user, and no interaction of any kind is needed once the affected filesystem is mounted.\nS:U - The out-of-bounds access and its consequences are confined to the kernel that owns the filesystem; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - eh_entries is attacker-controlled up to 65535, so ext4_ext_binsearch_idx/ext4_cache_extents read up to ~768KB of adjacent kernel heap past i_data, and those out-of-bounds bytes are installed into the extent status tree as physical block mappings that can be read back via FIEMAP and used to read disk blocks belonging to other files — a broad kernel-memory and cross-file disclosure primitive.\nI:H - Garbage extent entries derived from freed/out-of-bounds heap memory are cached as valid block mappings with attacker-influenced pblk values, so delayed-allocation writeback can direct file data at physical blocks never allocated to the inode, corrupting other files and filesystem metadata, along with the incorrect reserved cluster accounting noted in the predecessor commit.\nA:H - The syzbot report is a KASAN use-after-free read, and the binary search can walk hundreds of kilobytes past the object into unmapped memory, producing an oops; the resulting EXT4_ERROR_INODE/EFSCORRUPTED path also panics on errors=panic and leaves the filesystem inconsistent."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/extents.c"],"versions":[{"version":"1ed1eef0551bebee8e56973ccd0900e3578edfb7","lessThan":"0ce15000dee0ecd6f235f925a327803e2ef489c6","status":"affected","versionType":"git"},{"version":"6f4200ec76a0d31200c308ec5a71c68df5417004","lessThan":"a34f6dcb78c654ab905642c1b4e7e5fbb4f0babe","status":"affected","versionType":"git"},{"version":"9404839e0c9db5a517ea83c0ca3388b39d105fdf","lessThan":"770b0613637f59f3091dda1ff0c23671a5326b9c","status":"affected","versionType":"git"},{"version":"d440d6427a5e3a877c1c259b8d2b216ddb65e185","lessThan":"40566def189c513be2c694681256d7486cc6e368","status":"affected","versionType":"git"},{"version":"81b915181c630ee1cffa052e52874fe4e1ba91ac","lessThan":"96d440bee177669dc0acedca0abd73bae6a9be8b","status":"affected","versionType":"git"},{"version":"131294c35ed6f777bd4e79d42af13b5c41bf2775","lessThan":"11c87c8df2cae1d6be83c07e59fef0792de73482","status":"affected","versionType":"git"},{"version":"131294c35ed6f777bd4e79d42af13b5c41bf2775","lessThan":"14da044725a3ab10affa3566d29c15737c0e67a4","status":"affected","versionType":"git"},{"version":"131294c35ed6f777bd4e79d42af13b5c41bf2775","lessThan":"835659598c67907b98cd2aa57bb951dfaf675c69","status":"affected","versionType":"git"},{"version":"c0c8edbc8abbe8f16d80a1d794d1ba2c12b6f193","status":"affected","versionType":"git"},{"version":"4.19.270","lessThan":"4.19.271","status":"affected","versionType":"semver"},{"version":"5.4.229","lessThan":"5.4.243","status":"affected","versionType":"semver"},{"version":"5.10.163","lessThan":"5.10.180","status":"affected","versionType":"semver"},{"version":"5.15.87","lessThan":"5.15.111","status":"affected","versionType":"semver"},{"version":"6.1.4","lessThan":"6.1.28","status":"affected","versionType":"semver"},{"version":"6.0.18","lessThan":"6.1","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/extents.c"],"versions":[{"version":"6.2","status":"affected"},{"version":"0","lessThan":"6.2","status":"unaffected","versionType":"semver"},{"version":"4.19.271","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.243","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.180","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.111","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.28","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.2.15","lessThanOrEqual":"6.2.*","status":"unaffected","versionType":"semver"},{"version":"6.3.2","lessThanOrEqual":"6.3.*","status":"unaffected","versionType":"semver"},{"version":"6.4","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.270","versionEndExcluding":"4.19.271"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.229","versionEndExcluding":"5.4.243"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.163","versionEndExcluding":"5.10.180"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.87","versionEndExcluding":"5.15.111"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.4","versionEndExcluding":"6.1.28"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.2","versionEndExcluding":"6.2.15"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.2","versionEndExcluding":"6.3.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.2","versionEndExcluding":"6.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0.18"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/0ce15000dee0ecd6f235f925a327803e2ef489c6"},{"url":"https://git.kernel.org/stable/c/a34f6dcb78c654ab905642c1b4e7e5fbb4f0babe"},{"url":"https://git.kernel.org/stable/c/770b0613637f59f3091dda1ff0c23671a5326b9c"},{"url":"https://git.kernel.org/stable/c/40566def189c513be2c694681256d7486cc6e368"},{"url":"https://git.kernel.org/stable/c/96d440bee177669dc0acedca0abd73bae6a9be8b"},{"url":"https://git.kernel.org/stable/c/11c87c8df2cae1d6be83c07e59fef0792de73482"},{"url":"https://git.kernel.org/stable/c/14da044725a3ab10affa3566d29c15737c0e67a4"},{"url":"https://git.kernel.org/stable/c/835659598c67907b98cd2aa57bb951dfaf675c69"}],"title":"ext4: fix use-after-free read in ext4_find_extent for bigalloc + inline","x_generator":{"engine":"bippy-1.2.0"}}}}