Skip to main content
← All vulnerabilities
CVE-2026-53050

quota: Fix race of dquot_scan_active() with quota deactivation

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.258, 5.15.209, 6.1.175, 4.20, 5.5, and 5 more
None on Exploit-DB, Metasploit or GitHub

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.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 22c06bf1f99ec3ec16b1a81342becba4c59a1f16 · fixed in 2bdc80f4619411e5bd4a3ef23f51e14021ed457c; From 56e96b38d2f7cd95b3c30eb70decac7233915e0a · fixed in f9438cb8c8ec3adc84b2b450a3aab0123d074c3b; From 12a820a9923c11e8e898da9f82c8aded70cdcd16 · fixed in ac8a2e0d287ebf35e5d7e51e260b4e146648ba4a; From 869b6ea1609f655a43251bf41757aa44e5350a8f · fixed in 6678dde265708003c2b42551af4a2e3cb05decd5; From 869b6ea1609f655a43251bf41757aa44e5350a8f · fixed in 61e25f664dc2a08299e07d84c85776abc2350f75; From 869b6ea1609f655a43251bf41757aa44e5350a8f · fixed in fdd424d7c35633ac577fd87d1b043d1b8a6cd350; From 869b6ea1609f655a43251bf41757aa44e5350a8f · fixed in 82cbdb4c1ebb5ea7d7bd45c18d3483b5bd32ebc1; From 869b6ea1609f655a43251bf41757aa44e5350a8f · fixed in e93ab401da4b2e2c1b8ef2424de2f238d51c8b2d; From 5.10.199 · fixed in 5.10.258; From 5.15.136 · fixed in 5.15.209; From 6.1.59 · fixed in 6.1.175; From 4.19.297 · fixed in 4.20; From 5.4.259 · fixed in 5.5; From 6.5.8 · fixed in 6.6

  • Linux Linux

    6.6

  • KernelLinux

    fixed in 5.10.258; From 5.11.0 · fixed in 5.15.209; From 5.16.0 · fixed in 6.1.175; From 6.2.0 · fixed in 6.6.141; From 6.6.0 · fixed in 6.12.91; From 6.7.0 · fixed in 6.18.33; From 6.13.0 · fixed in 7.0.10

References 8

git.kernel.org