Description
In the Linux kernel, the following vulnerability has been resolved:
ext4: fix another off-by-one fsmap error on 1k block filesystems
Apparently syzbot figured out that issuing this FSMAP call:
struct fsmap_head cmd = {
.fmh_count = ...;
.fmh_keys = {
{ .fmr_device = /* ext4 dev */, .fmr_physical = 0, },
{ .fmr_device = /* ext4 dev */, .fmr_physical = 0, },
},
...
};
ret = ioctl(fd, FS_IOC_GETFSMAP, &cmd);
Produces this crash if the underlying filesystem is a 1k-block ext4
filesystem:
kernel BUG at fs/ext4/ext4.h:3331!
invalid opcode: 0000 [#1] PREEMPT SMP
CPU: 3 PID: 3227965 Comm: xfs_io Tainted: G W O 6.2.0-rc8-achx
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.15.0-1 04/01/2014
RIP: 0010:ext4_mb_load_buddy_gfp+0x47c/0x570 [ext4]
RSP: 0018:ffffc90007c03998 EFLAGS: 00010246
RAX: ffff888004978000 RBX: ffffc90007c03a20 RCX: ffff888041618000
RDX: 0000000000000000 RSI: 00000000000005a4 RDI: ffffffffa0c99b11
RBP: ffff888012330000 R08: ffffffffa0c2b7d0 R09: 0000000000000400
R10: ffffc90007c03950 R11: 0000000000000000 R12: 0000000000000001
R13: 00000000ffffffff R14: 0000000000000c40 R15: ffff88802678c398
FS: 00007fdf2020c880(0000) GS:ffff88807e100000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffd318a5fe8 CR3: 000000007f80f001 CR4: 00000000001706e0
Call Trace:
<TASK>
ext4_mballoc_query_range+0x4b/0x210 [ext4 dfa189daddffe8fecd3cdfd00564e0f265a8ab80]
ext4_getfsmap_datadev+0x713/0x890 [ext4 dfa189daddffe8fecd3cdfd00564e0f265a8ab80]
ext4_getfsmap+0x2b7/0x330 [ext4 dfa189daddffe8fecd3cdfd00564e0f265a8ab80]
ext4_ioc_getfsmap+0x153/0x2b0 [ext4 dfa189daddffe8fecd3cdfd00564e0f265a8ab80]
__ext4_ioctl+0x2a7/0x17e0 [ext4 dfa189daddffe8fecd3cdfd00564e0f265a8ab80]
__x64_sys_ioctl+0x82/0xa0
do_syscall_64+0x2b/0x80
entry_SYSCALL_64_after_hwframe+0x46/0xb0
RIP: 0033:0x7fdf20558aff
RSP: 002b:00007ffd318a9e30 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00000000000200c0 RCX: 00007fdf20558aff
RDX: 00007fdf1feb2010 RSI: 00000000c0c0583b RDI: 0000000000000003
RBP: 00005625c0634be0 R08: 00005625c0634c40 R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fdf1feb2010
R13: 00005625be70d994 R14: 0000000000000800 R15: 0000000000000000
For GETFSMAP calls, the caller selects a physical block device by
writing its block number into fsmap_head.fmh_keys[01].fmr_device.
To query mappings for a subrange of the device, the starting byte of the
range is written to fsmap_head.fmh_keys[0].fmr_physical and the last
byte of the range goes in fsmap_head.fmh_keys[1].fmr_physical.
IOWs, to query what mappings overlap with bytes 3-14 of /dev/sda, you'd
set the inputs as follows:
fmh_keys[0] = { .fmr_device = major(8, 0), .fmr_physical = 3},
fmh_keys[1] = { .fmr_device = major(8, 0), .fmr_physical = 14},
Which would return you whatever is mapped in the 12 bytes starting at
physical offset 3.
The crash is due to insufficient range validation of keys[1] in
ext4_getfsmap_datadev. On 1k-block filesystems, block 0 is not part of
the filesystem, which means that s_first_data_block is nonzero.
ext4_get_group_no_and_offset subtracts this quantity from the blocknr
argument before cracking it into a group number and a block number
within a group. IOWs, block group 0 spans blocks 1-8192 (1-based)
instead of 0-8191 (0-based) like what happens with larger blocksizes.
The net result of this encoding is that blocknr < s_first_data_block is
not a valid input to this function. The end_fsb variable is set from
the keys that are copied from userspace, which means that in the above
example, its value is zero. That leads to an underflow here:
blocknr = blocknr - le32_to_cpu(es->s_first_data_block);
The division then operates on -1:
offset = do_div(blocknr, EXT4_BLOCKS_PER_GROUP(sb)) >>
EXT4_SB(sb)->s_cluster_bits;
Leaving an impossibly large group number (2^32-1) in blocknr.
ext4_getfsmap_check_keys checked that keys[0
---truncated---
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 4.13 | 4.14.310 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.1.20-1 | — |
| Debian 13 | linux | 6.1.20-1 | — |
| Debian 12 | linux | 6.1.20-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 22.04 LTS | linux-bluefield | 5.15.0-1022.24 | — |
| Ubuntu 24.04 LTS | linux-realtime +1 | No fix yet | — |
| Ubuntu 22.04 LTS | linux | 5.15.0-79.86 | — |
| Ubuntu 22.04 LTS | linux-aws | 5.15.0-1042.47 | — |
| Ubuntu 22.04 LTS | linux-azure | 5.15.0-1045.52 | — |
| Ubuntu 22.04 LTS | linux-azure-fde | 5.15.0-1045.52.1 | — |
| Ubuntu 22.04 LTS | linux-gcp | 5.15.0-1039.47 | — |
| Ubuntu 22.04 LTS | linux-gke +1 | 5.15.0-1039.44 | — |
| Ubuntu 22.04 LTS | linux-gkeop | 5.15.0-1025.30 | — |
| Ubuntu 22.04 LTS | linux-ibm +1 | 5.15.0-1035.38 | — |
| Ubuntu 22.04 LTS | linux-intel-iotg | 5.15.0-1037.42 | — |
| Ubuntu 22.04 LTS | linux-lowlatency | 5.15.0-79.88 | — |
| Ubuntu 22.04 LTS | linux-nvidia | 5.15.0-1030.30 | — |
| Ubuntu 22.04 LTS | linux-nvidia-tegra | 5.15.0-1016.16 | — |
| Ubuntu 22.04 LTS | linux-nvidia-tegra-igx | 5.15.0-1002.2 | — |
| Ubuntu 22.04 LTS | linux-oracle | 5.15.0-1040.46 | — |
| Ubuntu 22.04 LTS | linux-riscv +31 | No fix yet | — |
| Ubuntu 22.04 LTS | linux-xilinx-zynqmp | 5.15.0-1025.29 | — |
| Ubuntu 20.04 LTS | linux | 5.4.0-156.173 | — |
| Ubuntu 20.04 LTS | linux-aws | 5.4.0-1107.115 | — |
| Ubuntu 20.04 LTS | linux-aws-5.15 | 5.15.0-1041.46~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-azure | 5.4.0-1114.120 | — |
| Ubuntu 20.04 LTS | linux-azure-5.15 | 5.15.0-1045.52~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-bluefield | 5.4.0-1068.74 | — |
| Ubuntu 20.04 LTS | linux-gcp | 5.4.0-1110.119 | — |
| Ubuntu 20.04 LTS | linux-gcp-5.15 | 5.15.0-1039.47~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-hwe-5.15 | 5.15.0-79.86~20.04.2 | — |
| Ubuntu 20.04 LTS | linux-ibm | 5.4.0-1054.59 | — |
| Ubuntu 20.04 LTS | linux-ibm-5.15 | 5.15.0-1036.39~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-intel-iotg-5.15 | 5.15.0-1037.42~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-iot | 5.4.0-1019.20 | — |
| Ubuntu 20.04 LTS | linux-kvm | 5.4.0-1096.102 | — |
| Ubuntu 20.04 LTS | linux-lowlatency-hwe-5.15 | 5.15.0-79.88~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-nvidia-tegra-5.15 | 5.15.0-1016.16~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-oracle | 5.4.0-1106.115 | — |
| Ubuntu 20.04 LTS | linux-oracle-5.15 | 5.15.0-1040.46~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-raspi | 5.4.0-1091.102 | — |
| Ubuntu 20.04 LTS | linux-riscv-5.15 | 5.15.0-1038.42~20.04.2 | — |
| Ubuntu 20.04 LTS | linux-xilinx-zynqmp | 5.4.0-1027.31 | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
Show 10 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-intel-iot-realtime | 5.15.0-1036.38 | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime | 5.15.0-1043.48 | — |
| Ubuntu Pro FIPS 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-aws-fips | 5.4.0-1107.115+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-azure-fips | 5.4.0-1113.119+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-fips | 5.4.0-1082.91 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-gcp-fips | 5.4.0-1110.119+fips1 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-preview 22.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro 18.04 LTS | linux +5 | No fix yet | — |
| Ubuntu Pro 18.04 LTS | linux-aws-5.4 | 5.4.0-1107.115~18.04.1 | — |
| Ubuntu Pro 18.04 LTS | linux-azure-5.4 | 5.4.0-1113.119~18.04.1 | — |
| Ubuntu Pro 18.04 LTS | linux-gcp-5.4 | 5.4.0-1110.119~18.04.1 | — |
| Ubuntu Pro 18.04 LTS | linux-hwe-5.4 | 5.4.0-156.173~18.04.1 | — |
| Ubuntu Pro 18.04 LTS | linux-ibm-5.4 | 5.4.0-1054.59~18.04.1 | — |
| Ubuntu Pro 18.04 LTS | linux-oracle-5.4 | 5.4.0-1106.115~18.04.1 | — |
| Ubuntu Pro 18.04 LTS | linux-raspi-5.4 | 5.4.0-1091.102~18.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-gcp +4 | No fix yet | — |
| Ubuntu Pro 14.04 LTS | linux-azure | No fix yet | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP5 | kernel-64kb +6 | 5.14.21-150500.55.110.1 | SUSE-SU-2025:02173-1 |
| SLES 15 SP5 | kernel-default-base | 5.14.21-150500.55.110.1.150500.6.51.3 | SUSE-SU-2025:02173-1 |
| SLES 15 SP4 | kernel-64kb +6 | 5.14.21-150400.24.167.1 | SUSE-SU-2025:02262-1 |
| SLES 15 SP4 | kernel-default-base | 5.14.21-150400.24.167.1.150400.24.84.1 | SUSE-SU-2025:02262-1 |
Show 11 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 15 SP5 | kernel-default-base | 5.14.21-150500.55.110.1.150500.6.51.3 | SUSE-SU-2025:02173-1 |
| SLES for SAP 15 SP5 | kernel-docs +4 | 5.14.21-150500.55.110.1 | SUSE-SU-2025:02173-1 |
| SLES for SAP 15 SP4 | kernel-default-base | 5.14.21-150400.24.167.1.150400.24.84.1 | SUSE-SU-2025:02262-1 |
| SLES for SAP 15 SP4 | kernel-docs +4 | 5.14.21-150400.24.167.1 | SUSE-SU-2025:02262-1 |
| SLE Micro 5.5 | kernel-default-base | 5.14.21-150500.55.110.1.150500.6.51.3 | SUSE-SU-2025:02173-1 |
| SLE Micro 5.5 | kernel-rt +1 | 5.14.21-150500.13.97.1 | SUSE-SU-2025:01966-1 |
| SLE Micro 5.5 | kernel-source +1 | 5.14.21-150500.55.110.1 | SUSE-SU-2025:02173-1 |
| SLE Micro 5.4 | kernel-default | 5.14.21-150400.24.167.1 | SUSE-SU-2025:02262-1 |
| SLE Micro 5.4 | kernel-default-base | 5.14.21-150400.24.167.1.150400.24.84.1 | SUSE-SU-2025:02262-1 |
| SLE Micro 5.4 | kernel-rt +1 | 5.14.21-150400.15.121.1 | SUSE-SU-2025:01918-1 |
| SLE Micro 5.3 | kernel-default | 5.14.21-150400.24.167.1 | SUSE-SU-2025:02262-1 |
| SLE Micro 5.3 | kernel-default-base | 5.14.21-150400.24.167.1.150400.24.84.1 | SUSE-SU-2025:02262-1 |
| SLE Micro 5.3 | kernel-rt +1 | 5.14.21-150400.15.121.1 | SUSE-SU-2025:01918-1 |
| SLE Live Patching 15 SP5 | kernel-default | 5.14.21-150500.55.110.1 | SUSE-SU-2025:02173-1 |
| SLE Live Patching 15 SP5 | kernel-livepatch-SLE15-SP5_Update_27 | 1-150500.11.7.1 | SUSE-SU-2025:02173-1 |
| SLE Live Patching 15 SP4 | kernel-default | 5.14.21-150400.24.167.1 | SUSE-SU-2025:02262-1 |
| SLE Live Patching 15 SP4 | kernel-livepatch-SLE15-SP4_Update_41 | 1-150400.9.3.1 | SUSE-SU-2025:02262-1 |
| SLE HPC 15 SP5 | kernel-64kb +5 | 5.14.21-150500.55.110.1 | SUSE-SU-2025:02173-1 |
| SLE HPC 15 SP5 | kernel-default-base | 5.14.21-150500.55.110.1.150500.6.51.3 | SUSE-SU-2025:02173-1 |
| SLE HPC 15 SP4 | kernel-64kb +5 | 5.14.21-150400.24.167.1 | SUSE-SU-2025:02262-1 |
| SLE HPC 15 SP4 | kernel-default-base | 5.14.21-150400.24.167.1.150400.24.84.1 | SUSE-SU-2025:02262-1 |
| SUSE Manager Server 4.3 | kernel-default-base | 5.14.21-150400.24.167.1.150400.24.84.1 | SUSE-SU-2025:02262-1 |
| SUSE Manager Server 4.3 | kernel-syms +3 | 5.14.21-150400.24.167.1 | SUSE-SU-2025:02262-1 |
| SUSE Manager Proxy 4.3 | kernel-default-base | 5.14.21-150400.24.167.1.150400.24.84.1 | SUSE-SU-2025:02262-1 |
| SUSE Manager Proxy 4.3 | kernel-syms +2 | 5.14.21-150400.24.167.1 | SUSE-SU-2025:02262-1 |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2023 | kernel-livepatch-6.1.21-1.45 | 1.0-0.amzn2023 | ALAS2023-2023-148 |
| Amazon Linux 2023 | perf +12 | 6.1.21-1.45.amzn2023 | ALAS2023-2023-148 |
| Amazon Linux 2 | kernel-livepatch-4.14.311-233.529 | 1.0-0.amzn2 | ALAS2-2025-2909 |
| Amazon Linux 2 | perf +8 | 4.14.311-233.529.amzn2 | ALAS2-2025-2909 |
Advisories 7
- WID-SEC-2025-0932 Linux Kernel: Mehrere Schwachstellen BSI CERT-Bund (WID) · Sep 22, 2026
- SUSE-SU-2025:02262-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:01918-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:02173-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:01966-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- ALAS2023-2023-148 Important: kernel security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Sep 22, 2025
- ALAS2-2025-2909 Important: kernel security update (Amazon Linux 2) Amazon Linux Security Center (ALAS) · Jul 29, 2025
References
- https://git.kernel.org/stable/c/a70b49dc7eee5dbe3775a650ce598e3557ff5475
- https://git.kernel.org/stable/c/f16054ac1774915160ca4e1c73ff7a269465a1b9
- https://git.kernel.org/stable/c/c24f838493792b5e78a3596b4ca96375aa0af4c2
- https://git.kernel.org/stable/c/1d2366624b4c19a2ba6baf67fe57f4a1b0f67c05
- https://git.kernel.org/stable/c/c5d7c31e17224d847a330180ec1b03bf390632b2
- https://git.kernel.org/stable/c/eb3a695aa71a514f2e7f5778e05faba3733b70a0
- https://git.kernel.org/stable/c/15ebade3266b300da9cd1edce4004fe8fd6a2b88
- https://git.kernel.org/stable/c/c993799baf9c5861f8df91beb80e1611b12efcbd