Wind River Support Network

HomeDefectsLIN1023-14413
Acknowledged

LIN1023-14413 : Security Advisory - linux - CVE-2025-38503

Created: Aug 17, 2025    Updated: Aug 18, 2025
Found In Version: 10.23.30.1
Severity: Standard
Applicable for: Wind River Linux LTS 23
Component/s: Kernel

Description

In the Linux kernel, the following vulnerability has been resolved:EOL][EOL]btrfs: fix assertion when building free space tree[EOL][EOL]When building the free space tree with the block group tree feature[EOL]enabled, we can hit an assertion failure like this:[EOL][EOL]  BTRFS info (device loop0 state M): rebuilding free space tree[EOL]  assertion failed: ret == 0, in fs/btrfs/free-space-tree.c:1102[EOL]  ------------[ cut here ]------------[EOL]  kernel BUG at fs/btrfs/free-space-tree.c:1102![EOL]  Internal error: Oops - BUG: 00000000f2000800 [#1]  SMP[EOL]  Modules linked in:[EOL]  CPU: 1 UID: 0 PID: 6592 Comm: syz-executor322 Not tainted 6.15.0-rc7-syzkaller-gd7fa1af5b33e #0 PREEMPT[EOL]  Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025[EOL]  pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)[EOL]  pc : populate_free_space_tree+0x514/0x518 fs/btrfs/free-space-tree.c:1102[EOL]  lr : populate_free_space_tree+0x514/0x518 fs/btrfs/free-space-tree.c:1102[EOL]  sp : ffff8000a4ce7600[EOL]  x29: ffff8000a4ce76e0 x28: ffff0000c9bc6000 x27: ffff0000ddfff3d8[EOL]  x26: ffff0000ddfff378 x25: dfff800000000000 x24: 0000000000000001[EOL]  x23: ffff8000a4ce7660 x22: ffff70001499cecc x21: ffff0000e1d8c160[EOL]  x20: ffff0000e1cb7800 x19: ffff0000e1d8c0b0 x18: 00000000ffffffff[EOL]  x17: ffff800092f39000 x16: ffff80008ad27e48 x15: ffff700011e740c0[EOL]  x14: 1ffff00011e740c0 x13: 0000000000000004 x12: ffffffffffffffff[EOL]  x11: ffff700011e740c0 x10: 0000000000ff0100 x9 : 94ef24f55d2dbc00[EOL]  x8 : 94ef24f55d2dbc00 x7 : 0000000000000001 x6 : 0000000000000001[EOL]  x5 : ffff8000a4ce6f98 x4 : ffff80008f415ba0 x3 : ffff800080548ef0[EOL]  x2 : 0000000000000000 x1 : 0000000100000000 x0 : 000000000000003e[EOL]  Call trace:[EOL]   populate_free_space_tree+0x514/0x518 fs/btrfs/free-space-tree.c:1102 (P)[EOL]   btrfs_rebuild_free_space_tree+0x14c/0x54c fs/btrfs/free-space-tree.c:1337[EOL]   btrfs_start_pre_rw_mount+0xa78/0xe10 fs/btrfs/disk-io.c:3074[EOL]   btrfs_remount_rw fs/btrfs/super.c:1319 [inline][EOL]   btrfs_reconfigure+0x828/0x2418 fs/btrfs/super.c:1543[EOL]   reconfigure_super+0x1d4/0x6f0 fs/super.c:1083[EOL]   do_remount fs/namespace.c:3365 [inline][EOL]   path_mount+0xb34/0xde0 fs/namespace.c:4200[EOL]   do_mount fs/namespace.c:4221 [inline][EOL]   __do_sys_mount fs/namespace.c:4432 [inline][EOL]   __se_sys_mount fs/namespace.c:4409 [inline][EOL]   __arm64_sys_mount+0x3e8/0x468 fs/namespace.c:4409[EOL]   __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline][EOL]   invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:49[EOL]   el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:132[EOL]   do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151[EOL]   el0_svc+0x58/0x17c arch/arm64/kernel/entry-common.c:767[EOL]   el0t_64_sync_handler+0x78/0x108 arch/arm64/kernel/entry-common.c:786[EOL]   el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:600[EOL]  Code: f0047182 91178042 528089c3 9771d47b (d4210000)[EOL]  ---[ end trace 0000000000000000 ]---[EOL][EOL]This happens because we are processing an empty block group, which has[EOL]no extents allocated from it, there are no items for this block group,[EOL]including the block group item since block group items are stored in a[EOL]dedicated tree when using the block group tree feature. It also means[EOL]this is the block group with the highest start offset, so there are no[EOL]higher keys in the extent root, hence btrfs_search_slot_for_read()[EOL]returns 1 (no higher key found).[EOL][EOL]Fix this by asserting 'ret' is 0 only if the block group tree feature[EOL]is not enabled, in which case we should find a block group item for[EOL]the block group since it's stored in the extent root and block group[EOL]item keys are greater than extent item keys (the value for[EOL]BTRFS_BLOCK_GROUP_ITEM_KEY is 192 and for BTRFS_EXTENT_ITEM_KEY and[EOL]BTRFS_METADATA_ITEM_KEY the values are 168 and 169 respectively).[EOL]In case 'ret' is 1, we just need to add a record to the free space[EOL]tree which spans the whole block group, and we can achieve this by[EOL]making 'ret == 0' as the while loop's condition.

CREATE(Triage):(User=pbi-cn) [CVE-2025-38503 (https://nvd.nist.gov/vuln/detail/CVE-2025-38503)
Live chat
Online