# CVE-2023-52900: linux: In the Linux kernel, the following vulnerability has been resolved:  nilfs2: fix general protection fault in nilfs_bt...

CVE-2023-52900 is fixed in linux on 1 platform, first by DEBIAN-CVE-2023-52900, released August 21, 2024. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2023-52900
- Priority: Routine
- CVSS: 5.5 (medium)
- EPSS: 0.0024
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Aug 21, 2024

## Description

In the Linux kernel, the following vulnerability has been resolved:  nilfs2: fix general protection fault in nilfs_btree_insert()  If nilfs2 reads a corrupted disk image and tries to reads a b-tree node block by calling __nilfs_btree_get_block() against an invalid virtual block address, it returns -ENOENT because conversion of the virtual block address to a disk block address fails.  However, this return value is the same as the internal code that b-tree lookup routines return to indicate that the block being searched does not exist, so functions that operate on that b-tree may misbehave.  When nilfs_btree_insert() receives this spurious 'not found' code from nilfs_btree_do_lookup(), it misunderstands that the 'not found' check was successful and continues the insert operation using incomplete lookup path data, causing the following crash:   general protection fault, probably for non-canonical address  0xdffffc0000000005: 0000 [#1] PREEMPT SMP KASAN  KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f]  ...  RIP: 0010:nilfs_btree_get_nonroot_node fs/nilfs2/btree.c:418 [inline]  RIP: 0010:nilfs_btree_prepare_insert fs/nilfs2/btree.c:1077 [inline]  RIP: 0010:nilfs_btree_insert+0x6d3/0x1c10 fs/nilfs2/btree.c:1238  Code: bc 24 80 00 00 00 4c 89 f8 48 c1 e8 03 42 80 3c 28 00 74 08 4c 89  ff e8 4b 02 92 fe 4d 8b 3f 49 83 c7 28 4c 89 f8 48 c1 e8 03 <42> 80 3c  28 00 74 08 4c 89 ff e8 2e 02 92 fe 4d 8b 3f 49 83 c7 02  ...  Call Trace:  <TASK>   nilfs_bmap_do_insert fs/nilfs2/bmap.c:121 [inline]   nilfs_bmap_insert+0x20d/0x360 fs/nilfs2/bmap.c:147   nilfs_get_block+0x414/0x8d0 fs/nilfs2/inode.c:101   __block_write_begin_int+0x54c/0x1a80 fs/buffer.c:1991   __block_write_begin fs/buffer.c:2041 [inline]   block_write_begin+0x93/0x1e0 fs/buffer.c:2102   nilfs_write_begin+0x9c/0x110 fs/nilfs2/inode.c:261   generic_perform_write+0x2e4/0x5e0 mm/filemap.c:3772   __generic_file_write_iter+0x176/0x400 mm/filemap.c:3900   generic_file_write_iter+0xab/0x310 mm/filemap.c:3932   call_write_iter include/linux/fs.h:2186 [inline]   new_sync_write fs/read_write.c:491 [inline]   vfs_write+0x7dc/0xc50 fs/read_write.c:584   ksys_write+0x177/0x2a0 fs/read_write.c:637   do_syscall_x64 arch/x86/entry/common.c:50 [inline]   do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80   entry_SYSCALL_64_after_hwframe+0x63/0xcd  ...  </TASK>  This patch fixes the root cause of this problem by replacing the error code that __nilfs_btree_get_block() returns on block address conversion failure from -ENOENT to another internal code -EINVAL which means that the b-tree metadata is corrupted.  By returning -EINVAL, it propagates without glitches, and for all relevant b-tree operations, functions in the upper bmap layer output an error message indicating corrupted b-tree metadata via nilfs_bmap_convert_error(), and code -EIO will be eventually returned as it should be.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 12.15 (bookworm) | 6.1.8-1 | [DEBIAN-CVE-2023-52900](https://patchblox.com/security/data/fix/linux/debian-cve-2023-52900.md) | Aug 21, 2024 |
| Linux | linux Debian 13.5 (trixie) | 6.1.8-1 | [DEBIAN-CVE-2023-52900](https://patchblox.com/security/data/fix/linux/debian-cve-2023-52900.md) | Aug 21, 2024 |
| Linux | linux Debian 14 | 6.1.8-1 | [DEBIAN-CVE-2023-52900](https://patchblox.com/security/data/fix/linux/debian-cve-2023-52900.md) | Aug 21, 2024 |

---

Data as of 2026-11-08T13:06:02Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
