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.
| Date Added | Due Date | Vulnerability Name | Required Action |
|---|---|---|---|
| N/A |
| Type | Version | Base score | Base severity | Vector |
|---|---|---|---|---|
| Secondary | 3.1 | 7.8 | HIGH | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Hyperlink | Source | Resource |
|---|---|---|
| https://git.kernel.org/stable/c/2bdc80f4619411e5bd4a3ef23f51e14021ed457c | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | Patch |
| https://git.kernel.org/stable/c/61e25f664dc2a08299e07d84c85776abc2350f75 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | Patch |
| https://git.kernel.org/stable/c/6678dde265708003c2b42551af4a2e3cb05decd5 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | Patch |
| https://git.kernel.org/stable/c/82cbdb4c1ebb5ea7d7bd45c18d3483b5bd32ebc1 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | Patch |
| https://git.kernel.org/stable/c/ac8a2e0d287ebf35e5d7e51e260b4e146648ba4a | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | Patch |
| https://git.kernel.org/stable/c/e93ab401da4b2e2c1b8ef2424de2f238d51c8b2d | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | Patch |
| https://git.kernel.org/stable/c/f9438cb8c8ec3adc84b2b450a3aab0123d074c3b | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | Patch |
| https://git.kernel.org/stable/c/fdd424d7c35633ac577fd87d1b043d1b8a6cd350 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | Patch |