Upstream information
Description
In the Linux kernel, the following vulnerability has been resolved:xfs: fix under-reservation of blocks when repairing sf directories
Whilst running QA on XFS for-next as of 7.3-rc2 with MKFS_OPTIONS="-n
size=8192", I observed the following (trimmed) dmesg splat:
XFS: Assertion failed: args->total >= dp->i_nblocks - nblks, file: fs/xfs/libxfs/xfs_da_btree.c, line: 2387
WARNING: fs/xfs/xfs_message.c:104 at assfail+0x46/0x4a [xfs], CPU#0: xfs_scrub/1426511
CPU: 0 UID: 0 PID: 1426511 Comm: xfs_scrub Tainted: G W 7.3.0-rc2-djwx #rc2 PREEMPT(lazy) 6e418570b606a39783b0e7e7b30dc407b965f9e8
Tainted: [W]=WARN
RIP: 0010:assfail+0x46/0x4a [xfs]
RSP: 0018:ffffc900010d7890 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00000000ffffffd1
RDX: 0000000000000000 RSI: 0000000000000021 RDI: ffffffffa059fd38
RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000
R10: 000000000000000a R11: 000000007fffffff R12: ffffc900010d7940
R13: ffff888368d8f980 R14: ffffc900010d7a48 R15: ffffc900010d78d0
FS: 00007f445c5ce680(0000) GS:ffff8884a97ea000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f443803b9a8 CR3: 0000000107a4b000 CR4: 00000000003506f0
Call Trace:
<TASK>
xfs_da_grow_inode_int+0x2e0/0x300 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
xfs_dir2_grow_inode+0x6e/0x150 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
xfs_dir2_sf_to_block+0x149/0x870 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
xrep_dir_swap_prep+0xe2/0x110 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
xrep_dir_swap+0xfb/0x2f0 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
xrep_dir_rebuild_tree+0x99/0x100 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
xrep_directory+0x83/0x1c0 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
xrep_attempt+0x4f/0x1e0 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
xfs_scrub_metadata+0x393/0x5b0 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
xfs_ioc_scrubv_metadata+0x306/0x570 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
xfs_file_ioctl+0xa4f/0x1150 [xfs 5de2257e14108c136f11317e6bbb8ac77efd392c]
__x64_sys_ioctl+0x76/0xc0
do_syscall_64+0x7a/0x3b0
entry_SYSCALL_64_after_hwframe+0x4b/0x53
This is a consequence of commit 0fe77e57588b98, which added the
following assertion to xfs_da_grow_inode_int:
ASSERT(args->total >= dp->i_nblocks - nblks);
Tracing this back to xrep_dir_swap_prep, I noticed that the xfs_da_args
object that's passed to xfs_dir2_sf_to_block sets args->total to 1.
This is incorrect because mkfs set the directory block size to 8k and
the filesystem block size to 4k. In other words, args->total should be
2 here, not 1.
Dave Chinner tripped over the same problem with the same branch through
a different channel -- his test setup set the fs block size to 1k, in
which case the directory block size is still set to 4k. Here,
args->total should be 4.
Changing the assignment of args->total to sc->mp->m_dir_geo->fsbcount
makes the assertion go away, but that isn't a complete fix. In
xrep_tempexch_estimate, we also incorrectly assume that a shortform
conversion requires 1 fsblock when it should be m_dir_geo->fsbcount.
Without that, we can under-reserve space in the transaction and cause a
filesystem shutdown.
Note that the xfs_dabuf_nfsb helper will compute the correct value for
directories and xattr, so we use that instead of open-coding the logic.
Also fix xrep_xattr_swap_prep to assign args->total via xfs_dabuf_nfsb
to avoid one logic bomb if we ever support multi-fsblock attrs.
Tripped-by: 0fe77e57588b98 ("xfs: assert the reservation covers each da fork growth")
SUSE information
Overall state of this security issue: Pending
This issue is currently rated as having moderate severity.
| CVSS detail | SUSE |
|---|---|
| Base Score | 4.4 |
| Vector | CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H |
| Attack Vector | Local |
| Attack Complexity | Low |
| Privileges Required | High |
| User Interaction | None |
| Scope | Unchanged |
| Confidentiality Impact | None |
| Integrity Impact | None |
| Availability Impact | High |
| CVSSv3 Version | 3.1 |
Note from the SUSE Security Team on the kernel-default package
SUSE will no longer fix all CVEs in the Linux Kernel anymore, but declare some bug classes as won't fix. Please refer to TID 21496 for more details. SUSE Bugzilla entry: 1283363 [NEW] No SUSE Security Announcements cross referenced.Status of this issue by product and package
Please note that this evaluation state might be work in progress, incomplete or outdated. Also information for service packs in the LTSS phase is only included for issues meeting the LTSS criteria. If in doubt, feel free to contact us for clarification. The updates are grouped by state of their lifecycle. SUSE product lifecycles are documented on the lifecycle page.
| Product(s) | Source package | State |
|---|---|---|
| Products under general support and receiving all security fixes. | ||
| SUSE Linux Enterprise Desktop 15 SP7 | kernel-default | Not affected |
| SUSE Linux Enterprise Desktop 15 SP7 | kernel-source | Not affected |
| SUSE Linux Enterprise High Availability Extension 15 SP7 | kernel-default | Not affected |
| SUSE Linux Enterprise High Availability Extension 15 SP7 | kernel-source | Not affected |
| SUSE Linux Enterprise High Availability Extension 16.0 | kernel-default | Affected |
| SUSE Linux Enterprise High Availability Extension 16.0 | kernel-source | Affected |
| SUSE Linux Enterprise High Availability Extension 16.1 | kernel-default | Affected |
| SUSE Linux Enterprise High Availability Extension 16.1 | kernel-source | Affected |
| SUSE Linux Enterprise Micro 5.3 | kernel-default | Not affected |
| SUSE Linux Enterprise Micro 5.3 | kernel-rt | Not affected |
| SUSE Linux Enterprise Micro 5.3 | kernel-source | Not affected |
| SUSE Linux Enterprise Micro 5.3 | kernel-source-rt | Not affected |
| SUSE Linux Enterprise Micro 5.4 | kernel-default | Not affected |
| SUSE Linux Enterprise Micro 5.4 | kernel-rt | Not affected |
| SUSE Linux Enterprise Micro 5.4 | kernel-source | Not affected |
| SUSE Linux Enterprise Micro 5.4 | kernel-source-rt | Not affected |
| SUSE Linux Enterprise Micro 5.5 | kernel-default | Not affected |
| SUSE Linux Enterprise Micro 5.5 | kernel-source | Not affected |
| SUSE Linux Enterprise Micro 5.5 | kernel-source-rt | Not affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP7 | kernel-default | Not affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP7 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP7 | kernel-default | Not affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP7 | kernel-source | Not affected |
| SUSE Linux Enterprise Real Time 15 SP7 | kernel-source-rt | Not affected |
| SUSE Linux Enterprise Server 15 SP7 | kernel-default | Not affected |
| SUSE Linux Enterprise Server 15 SP7 | kernel-source | Not affected |
| SUSE Linux Enterprise Server 16.0 | kernel-default | Affected |
| SUSE Linux Enterprise Server 16.0 | kernel-source | Affected |
| SUSE Linux Enterprise Server 16.1 | kernel-default | Affected |
| SUSE Linux Enterprise Server 16.1 | kernel-source | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | kernel-default | Not affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | kernel-source | Not affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | kernel-default | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | kernel-source | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | kernel-default | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | kernel-source | Affected |
| SUSE Linux Micro 6.0 | kernel-default | Not affected |
| SUSE Linux Micro 6.0 | kernel-source | Not affected |
| SUSE Linux Micro 6.0 | kernel-source-rt | Not affected |
| SUSE Linux Micro 6.1 | kernel-default | Not affected |
| SUSE Linux Micro 6.1 | kernel-source | Not affected |
| SUSE Linux Micro 6.1 | kernel-source-rt | Not affected |
| SUSE Linux Micro 6.2 | kernel-default | Affected |
| SUSE Linux Micro 6.2 | kernel-source | Affected |
| SUSE Linux Micro Extras 6.0 | kernel-default | Not affected |
| SUSE Linux Micro Extras 6.0 | kernel-source | Not affected |
| SUSE Linux Micro Extras 6.0 | kernel-source-rt | Not affected |
| SUSE Linux Micro Extras 6.1 | kernel-default | Not affected |
| SUSE Linux Micro Extras 6.1 | kernel-source | Not affected |
| SUSE Real Time Module 15 SP7 | kernel-source-rt | Not affected |
| openSUSE Leap 16.0 | kernel-source | Affected |
| Products under Long Term Service Pack support and receiving important and critical security fixes. | ||
| SUSE Linux Enterprise High Performance Computing 12 SP5 | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | kernel-default | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | kernel-default | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP4 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP5 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP6 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP4 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP5 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP6 | kernel-source | Not affected |
| SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE | kernel-default | Not affected |
| SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE | kernel-source | Not affected |
| SUSE Linux Enterprise Server 12 SP5 | kernel-source | Not affected |
| SUSE Linux Enterprise Server 12 SP5-LTSS | kernel-default | Not affected |
| SUSE Linux Enterprise Server 12 SP5-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP4 | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | kernel-default | Not affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP5 | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | kernel-default | Not affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP6 | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | kernel-default | Not affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 | kernel-default | Not affected |
| SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 | kernel-source | Not affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | kernel-default | Not affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | kernel-source | Not affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | kernel-default | Not affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | kernel-source | Not affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | kernel-default | Not affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | kernel-source | Not affected |
| Products past their end of life and not receiving proactive updates anymore. | ||
| SUSE CaaS Platform 4.0 | kernel-source | Not affected |
| SUSE Enterprise Storage 6 | kernel-source | Not affected |
| SUSE Enterprise Storage 7 | kernel-source | Not affected |
| SUSE Enterprise Storage 7.1 | kernel-source | Not affected |
| SUSE Linux Enterprise Desktop 11 SP4 | kernel-source | Not affected |
| SUSE Linux Enterprise Desktop 15 SP1 | kernel-source | Not affected |
| SUSE Linux Enterprise Desktop 15 SP2 | kernel-source | Not affected |
| SUSE Linux Enterprise Desktop 15 SP3 | kernel-source | Not affected |
| SUSE Linux Enterprise Desktop 15 SP4 | kernel-source | Not affected |
| SUSE Linux Enterprise Desktop 15 SP5 | kernel-source | Not affected |
| SUSE Linux Enterprise Desktop 15 SP6 | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1 | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | kernel-source | Not affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | kernel-source | Not affected |
| SUSE Linux Enterprise Micro 5.0 | kernel-default | Not affected |
| SUSE Linux Enterprise Micro 5.1 | kernel-default | Not affected |
| SUSE Linux Enterprise Micro 5.2 | kernel-default | Not affected |
| SUSE Linux Enterprise Micro 5.2 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP1 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP2 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Basesystem 15 SP3 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP1 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP2 | kernel-source | Not affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP3 | kernel-source | Not affected |
| SUSE Linux Enterprise Real Time 15 SP2 | kernel-source | Not affected |
| SUSE Linux Enterprise Real Time 15 SP3 | kernel-source | Not affected |
| SUSE Linux Enterprise Real Time 15 SP4 | kernel-source | Not affected |
| SUSE Linux Enterprise Real Time 15 SP4 | kernel-source-rt | Not affected |
| SUSE Linux Enterprise Real Time 15 SP5 | kernel-source-rt | Not affected |
| SUSE Linux Enterprise Server 11 SP4 | kernel-source | Not affected |
| SUSE Linux Enterprise Server 11 SP4-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP1 | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP1-BCL | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP1-LTSS | kernel-default | Not affected |
| SUSE Linux Enterprise Server 15 SP1-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP2 | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | kernel-default | Not affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP3 | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | kernel-source | Not affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | kernel-default | Not affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | kernel-source | Not affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP1 | kernel-source | Not affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | kernel-source | Not affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | kernel-source | Not affected |
| SUSE Manager Proxy 4.0 | kernel-source | Not affected |
| SUSE Manager Proxy 4.1 | kernel-source | Not affected |
| SUSE Manager Proxy 4.2 | kernel-source | Not affected |
| SUSE Manager Proxy 4.3 | kernel-source | Not affected |
| SUSE Manager Proxy LTS 4.3 | kernel-source | Not affected |
| SUSE Manager Retail Branch Server 4.0 | kernel-source | Not affected |
| SUSE Manager Retail Branch Server 4.1 | kernel-source | Not affected |
| SUSE Manager Retail Branch Server 4.2 | kernel-source | Not affected |
| SUSE Manager Retail Branch Server 4.3 | kernel-source | Not affected |
| SUSE Manager Retail Branch Server LTS 4.3 | kernel-source | Not affected |
| SUSE Manager Server 4.0 | kernel-source | Not affected |
| SUSE Manager Server 4.1 | kernel-source | Not affected |
| SUSE Manager Server 4.2 | kernel-source | Not affected |
| SUSE Manager Server 4.3 | kernel-source | Not affected |
| SUSE Manager Server LTS 4.3 | kernel-source | Not affected |
| SUSE Real Time Module 15 SP4 | kernel-source-rt | Not affected |
| SUSE Real Time Module 15 SP5 | kernel-source-rt | Not affected |
| openSUSE Leap 15.3 | kernel-source | Not affected |
| openSUSE Leap 15.4 | kernel-source | Not affected |
| openSUSE Leap 15.4 | kernel-source-rt | Not affected |
| openSUSE Leap 15.5 | kernel-source | Not affected |
| openSUSE Leap 15.5 | kernel-source-rt | Not affected |
| openSUSE Leap 15.6 | kernel-source | Not affected |
| Products at an unknown state of their lifecycle. | ||
| SUSE Linux Enterprise Server for NVIDIA 16.1 | kernel-source | Affected |
SUSE Timeline for this CVE
CVE page created: Wed Sep 30 15:51:18 2026CVE page last modified: Thu Oct 1 18:51:08 2026