CVE-2026-53050
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Summary
In the Linux kernel, the following vulnerability has been resolved:
quota: Fix race of dquot_scan_active() with quota deactivation
dquot_scan_active() can race with quota deactivation in quota_release_workfn() like:
CPU0 (quota_release_workfn) CPU1 (dquot_scan_active) ============================== ============================== spin_lock(&dq_list_lock); list_replace_init( &releasing_dquots, &rls_head); /* dquot X on rls_head, dq_count == 0, DQ_ACTIVE_B still set / spin_unlock(&dq_list_lock); synchronize_srcu(&dquot_srcu); spin_lock(&dq_list_lock); list_for_each_entry(dquot, &inuse_list, dq_inuse) { / finds dquot X */ dquot_active(X) -> true atomic_inc(&X->dq_count); } spin_unlock(&dq_list_lock); spin_lock(&dq_list_lock); dquot = list_first_entry(&rls_head); WARN_ON_ONCE(atomic_read(&dquot->dq_count));
The problem is not only a cosmetic one as under memory pressure the caller of dquot_scan_active() can end up working on freed dquot.
Fix the problem by making sure the dquot is removed from releasing list when we acquire a reference to it.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 22c06bf1f99ec3ec16b1a81342becba4c59a1f16 < 2bdc80f4619411e5bd4a3ef23f51e14021ed457c | affected |
| Linux | Linux | 56e96b38d2f7cd95b3c30eb70decac7233915e0a < f9438cb8c8ec3adc84b2b450a3aab0123d074c3b | affected |
| Linux | Linux | 12a820a9923c11e8e898da9f82c8aded70cdcd16 < ac8a2e0d287ebf35e5d7e51e260b4e146648ba4a | affected |
| Linux | Linux | 869b6ea1609f655a43251bf41757aa44e5350a8f < 6678dde265708003c2b42551af4a2e3cb05decd5 | affected |
| Linux | Linux | 869b6ea1609f655a43251bf41757aa44e5350a8f < 61e25f664dc2a08299e07d84c85776abc2350f75 | affected |
| Linux | Linux | 869b6ea1609f655a43251bf41757aa44e5350a8f < fdd424d7c35633ac577fd87d1b043d1b8a6cd350 | affected |
| Linux | Linux | 869b6ea1609f655a43251bf41757aa44e5350a8f < 82cbdb4c1ebb5ea7d7bd45c18d3483b5bd32ebc1 | affected |
| Linux | Linux | 869b6ea1609f655a43251bf41757aa44e5350a8f < e93ab401da4b2e2c1b8ef2424de2f238d51c8b2d | affected |
| Linux | Linux | bb7e3a019b52d829949d02b64ebab37838148fbf | affected |
| Linux | Linux | 061a18239ced5eb086967a2b4451cb1cc5ce0702 | affected |
| Linux | Linux | 2a1ddddba6541143c8f73962f3021f1789114284 | affected |
| Linux | Linux | 5.10.199 < 5.10.258 | affected |
| Linux | Linux | 5.15.136 < 5.15.209 | affected |
| Linux | Linux | 6.1.59 < 6.1.175 | affected |
| Linux | Linux | 4.19.297 < 4.20 | affected |
| Linux | Linux | 5.4.259 < 5.5 | affected |
| Linux | Linux | 6.5.8 < 6.6 | affected |
| Linux | Linux | 6.6 | affected |
| Linux | Linux | 0 < 6.6 | unaffected |
| Linux | Linux | 5.10.258 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.209 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.175 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.141 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.91 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.33 <= 6.18.* | unaffected |
| Linux | Linux | 7.0.10 <= 7.0.* | unaffected |
| Linux | Linux | 7.1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/2bdc80f4619411e5bd4a3ef23f51e14021ed457c
- https://git.kernel.org/stable/c/f9438cb8c8ec3adc84b2b450a3aab0123d074c3b
- https://git.kernel.org/stable/c/ac8a2e0d287ebf35e5d7e51e260b4e146648ba4a
- https://git.kernel.org/stable/c/6678dde265708003c2b42551af4a2e3cb05decd5
- https://git.kernel.org/stable/c/61e25f664dc2a08299e07d84c85776abc2350f75
- https://git.kernel.org/stable/c/fdd424d7c35633ac577fd87d1b043d1b8a6cd350
- https://git.kernel.org/stable/c/82cbdb4c1ebb5ea7d7bd45c18d3483b5bd32ebc1
- https://git.kernel.org/stable/c/e93ab401da4b2e2c1b8ef2424de2f238d51c8b2d
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.