# CVE-2026-23036: linux: In the Linux kernel, the following vulnerability has been resolved:  btrfs: release path before iget_failed() in btrf...

CVE-2026-23036 is fixed in 14 products on 1 platform, first by DEBIAN-CVE-2026-23036, released January 31, 2026. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2026-23036
- Priority: Routine
- CVSS: n/a
- EPSS: 0.0022
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Jan 31, 2026

## Description

In the Linux kernel, the following vulnerability has been resolved:  btrfs: release path before iget_failed() in btrfs_read_locked_inode()  In btrfs_read_locked_inode() if we fail to lookup the inode, we jump to the 'out' label with a path that has a read locked leaf and then we call iget_failed(). This can result in a ABBA deadlock, since iget_failed() triggers inode eviction and that causes the release of the delayed inode, which must lock the delayed inode's mutex, and a task updating a delayed inode starts by taking the node's mutex and then modifying the inode's subvolume btree.  Syzbot reported the following lockdep splat for this:     ======================================================    WARNING: possible circular locking dependency detected    syzkaller #0 Not tainted    ------------------------------------------------------    btrfs-cleaner/8725 is trying to acquire lock:    ffff0000d6826a48 (&delayed_node->mutex){+.+.}-{4:4}, at: __btrfs_release_delayed_node+0xa0/0x9b0 fs/btrfs/delayed-inode.c:290     but task is already holding lock:    ffff0000dbeba878 (btrfs-tree-00){++++}-{4:4}, at: btrfs_tree_read_lock_nested+0x44/0x2ec fs/btrfs/locking.c:145     which lock already depends on the new lock.     the existing dependency chain (in reverse order) is:     -> #1 (btrfs-tree-00){++++}-{4:4}:           __lock_release kernel/locking/lockdep.c:5574 [inline]           lock_release+0x198/0x39c kernel/locking/lockdep.c:5889           up_read+0x24/0x3c kernel/locking/rwsem.c:1632           btrfs_tree_read_unlock+0xdc/0x298 fs/btrfs/locking.c:169           btrfs_tree_unlock_rw fs/btrfs/locking.h:218 [inline]           btrfs_search_slot+0xa6c/0x223c fs/btrfs/ctree.c:2133           btrfs_lookup_inode+0xd8/0x38c fs/btrfs/inode-item.c:395           __btrfs_update_delayed_inode+0x124/0xed0 fs/btrfs/delayed-inode.c:1032           btrfs_update_delayed_inode fs/btrfs/delayed-inode.c:1118 [inline]           __btrfs_commit_inode_delayed_items+0x15f8/0x1748 fs/btrfs/delayed-inode.c:1141           __btrfs_run_delayed_items+0x1ac/0x514 fs/btrfs/delayed-inode.c:1176           btrfs_run_delayed_items_nr+0x28/0x38 fs/btrfs/delayed-inode.c:1219           flush_space+0x26c/0xb68 fs/btrfs/space-info.c:828           do_async_reclaim_metadata_space+0x110/0x364 fs/btrfs/space-info.c:1158           btrfs_async_reclaim_metadata_space+0x90/0xd8 fs/btrfs/space-info.c:1226           process_one_work+0x7e8/0x155c kernel/workqueue.c:3263           process_scheduled_works kernel/workqueue.c:3346 [inline]           worker_thread+0x958/0xed8 kernel/workqueue.c:3427           kthread+0x5fc/0x75c kernel/kthread.c:463           ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:844     -> #0 (&delayed_node->mutex){+.+.}-{4:4}:           check_prev_add kernel/locking/lockdep.c:3165 [inline]           check_prevs_add kernel/locking/lockdep.c:3284 [inline]           validate_chain kernel/locking/lockdep.c:3908 [inline]           __lock_acquire+0x1774/0x30a4 kernel/locking/lockdep.c:5237           lock_acquire+0x14c/0x2e0 kernel/locking/lockdep.c:5868           __mutex_lock_common+0x1d0/0x2678 kernel/locking/mutex.c:598           __mutex_lock kernel/locking/mutex.c:760 [inline]           mutex_lock_nested+0x2c/0x38 kernel/locking/mutex.c:812           __btrfs_release_delayed_node+0xa0/0x9b0 fs/btrfs/delayed-inode.c:290           btrfs_release_delayed_node fs/btrfs/delayed-inode.c:315 [inline]           btrfs_remove_delayed_node+0x68/0x84 fs/btrfs/delayed-inode.c:1326           btrfs_evict_inode+0x578/0xe28 fs/btrfs/inode.c:5587           evict+0x414/0x928 fs/inode.c:810           iput_final fs/inode.c:1914 [inline]           iput+0x95c/0xad4 fs/inode.c:1966           iget_failed+0xec/0x134 fs/bad_inode.c:248           btrfs_read_locked_inode+0xe1c/0x1234 fs/btrfs/inode.c:4101           btrfs_iget+0x1b0/0x264 fs/btrfs/inode.c:5837           btrfs_run_defrag_inode fs/btrfs/defrag.c:237 [inline]           btrfs_run_defrag_inodes+0x520/0xdc4 fs/btrf ---truncated---

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | dtb-aarch64 opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-64kb opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-64kb sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-azure opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-azure sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-default opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-default sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23237-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23237-1.md) | Aug 11, 2026 |
| Linux | kernel-default-base opensuse-leap 16.0 | 6.12.0-160000.37.1.160000.2.19 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-default-base sles 16.0 | 6.12.0-160000.37.1.160000.2.19 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-docs opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-docs sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-kvmsmall opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-kvmsmall sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-obs-build opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-obs-qa opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-obs-qa sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-rt opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-source opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-source sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-syms opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-syms sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-zfcpdump opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-zfcpdump sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | linux Debian 14 | 6.18.8-1 | [DEBIAN-CVE-2026-23036](https://patchblox.com/security/data/fix/linux/debian-cve-2026-23036.md) | Jan 31, 2026 |

---

Data as of 2026-11-09T01:18:40Z 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.
