{"id":"DEBIAN-CVE-2025-40246","details":"In the Linux kernel, the following vulnerability has been resolved:  xfs: fix out of bounds memory read error in symlink repair  xfs/286 produced this report on my test fleet:   ==================================================================  BUG: KFENCE: out-of-bounds read in memcpy_orig+0x54/0x110   Out-of-bounds read at 0xffff88843fe9e038 (184B right of kfence-#184):   memcpy_orig+0x54/0x110   xrep_symlink_salvage_inline+0xb3/0xf0 [xfs]   xrep_symlink_salvage+0x100/0x110 [xfs]   xrep_symlink+0x2e/0x80 [xfs]   xrep_attempt+0x61/0x1f0 [xfs]   xfs_scrub_metadata+0x34f/0x5c0 [xfs]   xfs_ioc_scrubv_metadata+0x387/0x560 [xfs]   xfs_file_ioctl+0xe23/0x10e0 [xfs]   __x64_sys_ioctl+0x76/0xc0   do_syscall_64+0x4e/0x1e0   entry_SYSCALL_64_after_hwframe+0x4b/0x53   kfence-#184: 0xffff88843fe9df80-0xffff88843fe9dfea, size=107, cache=kmalloc-128   allocated by task 3470 on cpu 1 at 263329.131592s (192823.508886s ago):   xfs_init_local_fork+0x79/0xe0 [xfs]   xfs_iformat_local+0xa4/0x170 [xfs]   xfs_iformat_data_fork+0x148/0x180 [xfs]   xfs_inode_from_disk+0x2cd/0x480 [xfs]   xfs_iget+0x450/0xd60 [xfs]   xfs_bulkstat_one_int+0x6b/0x510 [xfs]   xfs_bulkstat_iwalk+0x1e/0x30 [xfs]   xfs_iwalk_ag_recs+0xdf/0x150 [xfs]   xfs_iwalk_run_callbacks+0xb9/0x190 [xfs]   xfs_iwalk_ag+0x1dc/0x2f0 [xfs]   xfs_iwalk_args.constprop.0+0x6a/0x120 [xfs]   xfs_iwalk+0xa4/0xd0 [xfs]   xfs_bulkstat+0xfa/0x170 [xfs]   xfs_ioc_fsbulkstat.isra.0+0x13a/0x230 [xfs]   xfs_file_ioctl+0xbf2/0x10e0 [xfs]   __x64_sys_ioctl+0x76/0xc0   do_syscall_64+0x4e/0x1e0   entry_SYSCALL_64_after_hwframe+0x4b/0x53   CPU: 1 UID: 0 PID: 1300113 Comm: xfs_scrub Not tainted 6.18.0-rc4-djwx #rc4 PREEMPT(lazy)  3d744dd94e92690f00a04398d2bd8631dcef1954  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.0-4.module+el8.8.0+21164+ed375313 04/01/2014  ==================================================================  On further analysis, I realized that the second parameter to min() is not correct.  xfs_ifork::if_bytes is the size of the xfs_ifork::if_data buffer.  if_bytes can be smaller than the data fork size because:  (a) the forkoff code tries to keep the data area as large as possible (b) for symbolic links, if_bytes is the ondisk file size + 1 (c) forkoff is always a multiple of 8.  Case in point: for a single-byte symlink target, forkoff will be 8 but the buffer will only be 2 bytes long.  In other words, the logic here is wrong and we walk off the end of the incore buffer.  Fix that.","modified":"2026-09-01T20:05:51.773505387Z","published":"2025-12-04T16:16:17.970Z","upstream":["CVE-2025-40246"],"references":[{"type":"ADVISORY","url":"https://security-tracker.debian.org/tracker/CVE-2025-40246"}],"affected":[{"package":{"name":"linux","ecosystem":"Debian:13","purl":"pkg:deb/debian/linux?arch=source&distro=trixie"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.12.63-1"}]}],"versions":["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~bpo12+1"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2025-40246.json"}},{"package":{"name":"linux","ecosystem":"Debian:14","purl":"pkg:deb/debian/linux?arch=source&distro=forky"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.17.10-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.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"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2025-40246.json"}}],"schema_version":"1.9.0"}