Bug 1223776 (CVE-2024-27023)

Summary: VUL-0: CVE-2024-27023: kernel: md: fix missing release of 'active_io' for flush
Product: [Novell Products] SUSE Security Incidents Reporter: SMASH SMASH <smash_bz>
Component: IncidentsAssignee: Security Team bot <security-team>
Status: RESOLVED FIXED QA Contact: Security Team bot <security-team>
Severity: Normal    
Priority: P3 - Medium CC: camila.matos, vasant.karasulli
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
URL: https://smash.suse.de/issue/403814/
Whiteboard: CVSSv3.1:SUSE:CVE-2024-27023:5.5:(AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Found By: Security Response Team Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description SMASH SMASH 2024-05-02 16:06:14 UTC
In the Linux kernel, the following vulnerability has been resolved:

md: Fix missing release of 'active_io' for flush

submit_flushes
 atomic_set(&mddev->flush_pending, 1);
 rdev_for_each_rcu(rdev, mddev)
  atomic_inc(&mddev->flush_pending);
  bi->bi_end_io = md_end_flush
  submit_bio(bi);
                        /* flush io is done first */
                        md_end_flush
                         if (atomic_dec_and_test(&mddev->flush_pending))
                          percpu_ref_put(&mddev->active_io)
                          -> active_io is not released

 if (atomic_dec_and_test(&mddev->flush_pending))
  -> missing release of active_io

For consequence, mddev_suspend() will wait for 'active_io' to be zero
forever.

Fix this problem by releasing 'active_io' in submit_flushes() if
'flush_pending' is decreased to zero.

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2024-27023
https://www.cve.org/CVERecord?id=CVE-2024-27023
https://git.kernel.org/stable/c/02dad157ba11064d073f5499dc33552b227d5d3a
https://git.kernel.org/stable/c/11f81438927f84edfaaeb5d5f10856c3a1c1fc82
https://git.kernel.org/stable/c/6b2ff10390b19a2364af622b6666b690443f9f3f
https://git.kernel.org/stable/c/855678ed8534518e2b428bcbcec695de9ba248e8
https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2024/CVE-2024-27023.mbox
https://bugzilla.redhat.com/show_bug.cgi?id=2278488
Comment 13 Andrea Mattiazzo 2024-06-05 12:56:17 UTC
All done, closing.