Linux Kernel up to 6.7.6 md md_check_recovery denial of service

| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 4.4 | $0-$5k | 0.00 |
Summary
A vulnerability was found in Linux Kernel up to 6.7.6. It has been rated as problematic. This affects the function md_check_recovery of the component md. Performing a manipulation results in denial of service.
This vulnerability is known as CVE-2024-26757. No exploit is available.
Upgrading the affected component is advised.
Details
A vulnerability classified as problematic has been found in Linux Kernel up to 6.7.6. This affects the function md_check_recovery of the component md. The manipulation with an unknown input leads to a denial of service vulnerability. CWE is classifying the issue as CWE-404. The product does not release or incorrectly releases a resource before it is made available for re-use. This is going to have an impact on availability. The summary by CVE is:
In the Linux kernel, the following vulnerability has been resolved: md: Don't ignore read-only array in md_check_recovery() Usually if the array is not read-write, md_check_recovery() won't register new sync_thread in the first place. And if the array is read-write and sync_thread is registered, md_set_readonly() will unregister sync_thread before setting the array read-only. md/raid follow this behavior hence there is no problem. After commit f52f5c71f3d4 ("md: fix stopping sync thread"), following hang can be triggered by test shell/integrity-caching.sh: 1) array is read-only. dm-raid update super block: rs_update_sbs ro = mddev->ro mddev->ro = 0 -> set array read-write md_update_sb 2) register new sync thread concurrently. 3) dm-raid set array back to read-only: rs_update_sbs mddev->ro = ro 4) stop the array: raid_dtr md_stop stop_sync_thread set_bit(MD_RECOVERY_INTR, &mddev->recovery); md_wakeup_thread_directly(mddev->sync_thread); wait_event(..., !test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) 5) sync thread done: md_do_sync set_bit(MD_RECOVERY_DONE, &mddev->recovery); md_wakeup_thread(mddev->thread); 6) daemon thread can't unregister sync thread: md_check_recovery if (!md_is_rdwr(mddev) && !test_bit(MD_RECOVERY_NEEDED, &mddev->recovery)) return; -> -> MD_RECOVERY_RUNNING can't be cleared, hence step 4 hang; The root cause is that dm-raid manipulate 'mddev->ro' by itself, however, dm-raid really should stop sync thread before setting the array read-only. Unfortunately, I need to read more code before I can refacter the handler of 'mddev->ro' in dm-raid, hence let's fix the problem the easy way for now to prevent dm-raid regression.
The advisory is shared at git.kernel.org. This vulnerability is uniquely identified as CVE-2024-26757 since 02/19/2024. Technical details are known, but no exploit is available.
The vulnerability scanner Nessus provides a plugin with the ID 210815 (RHEL 9 : kernel (RHSA-2024:9315)), which helps to determine the existence of the flaw in a target environment.
Upgrading to version 6.7.7 or 6.8 eliminates this vulnerability. Applying the patch 2ea169c5a0b1/55a48ad2db64 is able to eliminate this problem. The bugfix is ready for download at git.kernel.org. The best possible mitigation is suggested to be upgrading to the latest version.
The vulnerability is also documented in the databases at Tenable (210815) and CERT Bund (WID-SEC-2024-0773). If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Affected
- Debian Linux
- Amazon Linux 2
- Red Hat Enterprise Linux
- Ubuntu Linux
- SUSE Linux
- IBM InfoSphere Guardium
- Oracle Linux
- NetApp FAS
- EMC Avamar
- Oracle VM
- NetApp AFF
- Dell NetWorker
- IBM Security Guardium
- RESF Rocky Linux
- Open Source Linux Kernel
- SolarWinds Security Event Manager
- Broadcom Brocade SANnav
- IBM Business Automation Workflow
- IBM Spectrum Protect Plus
- IBM QRadar SIEM
- Juniper Junos Space
- IBM DB2
- IBM Storage Scale System
Product
Type
Vendor
Name
Version
License
Website
- Vendor: https://www.kernel.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 4.5VulDB Meta Temp Score: 4.4
VulDB Base Score: 3.5
VulDB Temp Score: 3.4
VulDB Vector: 🔍
VulDB Reliability: 🔍
CNA Base Score: 5.5
CNA Vector: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍
Exploiting
Class: Denial of serviceCWE: CWE-404
CAPEC: 🔍
ATT&CK: 🔍
Physical: Partially
Local: Yes
Remote: Partially
Availability: 🔍
Status: Not defined
EPSS Score: 🔍
EPSS Percentile: 🔍
Price Prediction: 🔍
Current Price Estimation: 🔍
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Nessus ID: 210815
Nessus Name: RHEL 9 : kernel (RHSA-2024:9315)
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
0-Day Time: 🔍
Upgrade: Kernel 6.7.7/6.8
Patch: 2ea169c5a0b1/55a48ad2db64
Timeline
02/19/2024 🔍04/03/2024 🔍
04/03/2024 🔍
08/03/2025 🔍
Sources
Vendor: kernel.orgAdvisory: git.kernel.org
Status: Confirmed
CVE: CVE-2024-26757 (🔍)
GCVE (CVE): GCVE-0-2024-26757
GCVE (VulDB): GCVE-100-259245
CERT Bund: WID-SEC-2024-0773 - Linux Kernel: Mehrere Schwachstellen
Entry
Created: 04/03/2024 19:25Updated: 08/03/2025 21:52
Changes: 04/03/2024 19:25 (58), 11/07/2024 02:13 (13), 11/13/2024 17:05 (2), 08/03/2025 21:52 (7)
Complete: 🔍
Cache ID: 216::103
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
No comments yet. Languages: en.
Please log in to comment.