CVE-2026-93269: ext4: fix circular lock dependency in ext4_ext_migrate

Published Sep 24, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

ext4: fix circular lock dependency in ext4extmigrate

Move iput(tmpinode) after ext4writepagesupwrite() to avoid a circular lock dependency between swritepagesrwsem and sbinternal (freeze protection).

The deadlock scenario:

CPU0 (EXT4IOCMIGRATE) CPU1 (orphan cleanup during mount) ---- ---- ext4extmigrate() ext4writepagesdownwrite() swritepagesrwsem (write) ext4evictinode() sbstartintwrite() [sbinternal] ... ext4writepages() swritepagesrwsem (read) [BLOCKED] iput(tmpinode) ext4evictinode() sbstartintwrite() [BLOCKED]

The tmpinode is a temporary inode with nlink=0 created solely for building the extent tree. Its eviction does not require swritepagesrwsem protection, so deferring iput() until after releasing the rwsem is safe.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 24, 2026
CVE Published
via MITRE·03:52 PM
Data Sourced
via MITRE·03:52 PM
Description
Data Sourced
via NVD·04:17 PM
Description

Frequently Asked Questions

1

What conditions are required to trigger the deadlock?

One CPU must run the EXT4_IOC_MIGRATE path in ext4_ext_migrate while another performs orphan cleanup during mount. The lock inversion involves ext4's s_writepages_rwsem and the filesystem freeze-protection lock, sb_internal.

2

Is this an exposure to untrusted remote attackers?

The provided information describes a kernel deadlock caused by concurrent filesystem operations, not a remote attack path. It does not identify any network-facing trigger, required privileges, or attacker-controlled input.

3

What is the practical impact if the issue occurs?

The affected operations can block each other in a circular lock dependency: migration waits for writepages locking while temporary inode eviction waits for freeze protection. This can result in a filesystem or kernel operation hang.

4

What does the fix change?

The fix defers iput(tmp_inode) until after ext4_writepages_up_write() releases s_writepages_rwsem. The temporary inode has no links and is used only to build the extent tree, so its eviction can safely occur after that lock is released.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203