Description
In the Linux kernel, the following vulnerability has been resolved: block: Avoid mounting the bdev pseudo-filesystem in userspace The bdev pseudo-filesystem is an internal kernel filesystem with which userspace should not interfere. Unregister it so that userspace cannot even attempt to mount it. This fixes a bug [1] that occurs when attempting to access files, because the system call move_mount() uses pointers declared in the inode_operations structure, which for the bdev pseudo-filesystem are always equal to 0. `inode->i_op = &empty_iops;` [1] BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor instruction fetch in kernel mode #PF: error_code(0x0010) - not-present page PGD 23380067 P4D 23380067 PUD 23381067 PMD 0 Oops: 0010 [#1] PREEMPT SMP KASAN NOPTI CPU: 2 PID: 17125 Comm: syz-executor.0 Not tainted 6.1.155-syzkaller-00350-g84221fde2681 #0 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:0x0 Call Trace: <TASK> lookup_open.isra.0+0x700/0x1180 fs/namei.c:3460 open_last_lookups fs/namei.c:3550 [inline] path_openat+0x953/0x2700 fs/namei.c:3780 do_filp_open+0x1c5/0x410 fs/namei.c:3810 do_sys_openat2+0x171/0x4d0 fs/open.c:1318 do_sys_open fs/open.c:1334 [inline] __do_sys_openat fs/open.c:1350 [inline] __se_sys_openat fs/open.c:1345 [inline] __x64_sys_openat+0x13c/0x1f0 fs/open.c:1345 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x35/0x80 arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x6e/0xd8 Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 3d3fcf23993bb756de2f912ab631cfdcc4746554affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 99cde0a7b1e98fd3970aabef1300918e91698dd5affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 1a02a5028bd6dead1f8503854ef3168d651cd417affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 197971e6ffc0a6356b2ba2b22beb42bc0f7e412daffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 3804e6de30ae7b053d53341d9d6944356cf23b40affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 717f721eb67d2dacd3ed5f7495aef2f442e84ce4affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < f73aa66dffcb8e61e78f01b56163ec16a15d06d2affected
Linux Linux
Default version status: affected
2.6.12affected0 to < 2.6.12unaffected5.15.212 to ≤ 5.15.*unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.95 to ≤ 6.12.*unaffected6.18.38 to ≤ 6.18.*unaffected7.1.3 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/3d3fcf23993bb756de2f912ab631cfdcc4746554 ↗
- https://git.kernel.org/stable/c/99cde0a7b1e98fd3970aabef1300918e91698dd5 ↗
- https://git.kernel.org/stable/c/1a02a5028bd6dead1f8503854ef3168d651cd417 ↗
- https://git.kernel.org/stable/c/197971e6ffc0a6356b2ba2b22beb42bc0f7e412d ↗
- https://git.kernel.org/stable/c/3804e6de30ae7b053d53341d9d6944356cf23b40 ↗
- https://git.kernel.org/stable/c/717f721eb67d2dacd3ed5f7495aef2f442e84ce4 ↗
- https://git.kernel.org/stable/c/f73aa66dffcb8e61e78f01b56163ec16a15d06d2 ↗
- https://cert-portal.siemens.com/productcert/html/ssa-019113.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-457936.html ↗