Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-26757— md: Don't ignore read-only array in md_check_recovery()

EPSS 0.01% · P1
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2024-26757

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
md: Don't ignore read-only array in md_check_recovery()
Source: NVD (National Vulnerability Database)
Vulnerability Description
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.
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于只读数组会导致注册错误。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux ecbfb9f118bce49f571675929160e4ecef91cc8a ~ 2ea169c5a0b1134d573d07fc27a16f327ad0e7d3 -
LinuxLinux 4.8 -

II. Public POCs for CVE-2024-26757

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-26757

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-04-03 · 94 CVEs total

CVE-2024-26743RDMA/qedr: Fix qedr_create_user_qp error flow
CVE-2024-26740net/sched: act_mirred: use the backlog for mirred ingress
CVE-2024-26738powerpc/pseries/iommu: DLPAR add doesn't completely initialize pci_controller
CVE-2024-26734devlink: fix possible use-after-free and memory leaks in devlink_init()
CVE-2024-26733arp: Prevent overflow in arp_req_get().
CVE-2024-26732net: implement lockless setsockopt(SO_PEEK_OFF)
CVE-2024-26731bpf, sockmap: Fix NULL pointer dereference in sk_psock_verdict_data_ready()
CVE-2024-26730hwmon: (nct6775) Fix access to temperature configuration registers
CVE-2024-26735ipv6: sr: fix possible use-after-free and null-ptr-deref
CVE-2024-26742scsi: smartpqi: Fix disable_managed_interrupts
CVE-2024-26741dccp/tcp: Unhash sk from ehash for tb2 alloc failure after check_estalblished().
CVE-2024-26744RDMA/srpt: Support specifying the srpt_service_guid parameter
CVE-2024-26747usb: roles: fix NULL pointer issue when put module's reference
CVE-2024-26748usb: cdns3: fix memory double free when handle zero packet
CVE-2024-26749usb: cdns3: fixed memory use after free at cdns3_gadget_ep_disable()
CVE-2024-26751ARM: ep93xx: Add terminator to gpiod_lookup_table
CVE-2024-26752l2tp: pass correct message length to ip6_append_data
CVE-2024-26753crypto: virtio/akcipher - Fix stack overflow on memcpy
CVE-2024-26754gtp: fix use-after-free and null-ptr-deref in gtp_genl_dump_pdp()
CVE-2024-26755md: Don't suspend the array for interrupted reshape

Showing top 20 of 94 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2024-26757

No comments yet


Leave a comment