<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 Oct 2026 06:55:59 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-41511</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-41511</link>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-41511</guid>
    </item>
    <item>
      <title>GHSA-jxpf-xq2m-q525 — OpenMcdf has an Infinite loop DoS via crafted CFB directory cycle</title>
      <link>https://db.gcve.eu/vuln/ghsa-jxpf-xq2m-q525</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; NuGet: OpenMcdf&lt;/p&gt;
&lt;p&gt;### Summary
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`.&lt;/p&gt;
&lt;p&gt;### Details
CFB directory entries form a red-black tree linked by `LeftSiblingID` and `RightSiblingID` fields. OpenMcdf&amp;#39;s `DirectoryTreeEnumerator` and `DirectoryTree.TryGetDirectoryEntry` traverse this tree without tracking visited node IDs, so a crafted cycle (e.g. entry A&amp;#39;s `RightSiblingID` points to entry B, and entry B&amp;#39;s `LeftSiblingID` points back to entry A) causes traversal to loop indefinitely.&lt;/p&gt;
&lt;p&gt;Two distinct code paths are affected:&lt;/p&gt;
&lt;p&gt;- **`Storage.EnumerateEntries()`** - `DirectoryTreeEnumerator.MoveNext()` never returns `false`; the same entry is yielded on every iteration and the caller&amp;#39;s `foreach` never exits. Heap grows unboundedly as entries accumulate.
- **`Storage.OpenStream()`** - `DirectoryTree.TryGetDirectoryEntry` loops indefinitely inside `DirectoryEntries.TryGetSibling` during the name lookup.&lt;/p&gt;
&lt;p&gt;### PoC
A crafted CFB file with a sibling cycle (see attached) triggers the issue with the following code:&lt;/p&gt;
&lt;p&gt;```csharp
using OpenMcdf;&lt;/p&gt;
&lt;p&gt;using var ms = new MemoryStream(File.ReadAllBytes(&amp;#34;crafted.cfb&amp;#34;));
using var root = RootStorage.Open(ms);&lt;/p&gt;
&lt;p&gt;// Never returns - EnumerateEntries loops indefinitely
foreach…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; NuGet: OpenMcdf&lt;/p&gt;
&lt;p&gt;### Summary
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`.&lt;/p&gt;
&lt;p&gt;### Details
CFB directory entries form a red-black tree linked by `LeftSiblingID` and `RightSiblingID` fields. OpenMcdf&amp;#39;s `DirectoryTreeEnumerator` and `DirectoryTree.TryGetDirectoryEntry` traverse this tree without tracking visited node IDs, so a crafted cycle (e.g. entry A&amp;#39;s `RightSiblingID` points to entry B, and entry B&amp;#39;s `LeftSiblingID` points back to entry A) causes traversal to loop indefinitely.&lt;/p&gt;
&lt;p&gt;Two distinct code paths are affected:&lt;/p&gt;
&lt;p&gt;- **`Storage.EnumerateEntries()`** - `DirectoryTreeEnumerator.MoveNext()` never returns `false`; the same entry is yielded on every iteration and the caller&amp;#39;s `foreach` never exits. Heap grows unboundedly as entries accumulate.
- **`Storage.OpenStream()`** - `DirectoryTree.TryGetDirectoryEntry` loops indefinitely inside `DirectoryEntries.TryGetSibling` during the name lookup.&lt;/p&gt;
&lt;p&gt;### PoC
A crafted CFB file with a sibling cycle (see attached) triggers the issue with the following code:&lt;/p&gt;
&lt;p&gt;```csharp
using OpenMcdf;&lt;/p&gt;
&lt;p&gt;using var ms = new MemoryStream(File.ReadAllBytes(&amp;#34;crafted.cfb&amp;#34;));
using var root = RootStorage.Open(ms);&lt;/p&gt;
&lt;p&gt;// Never returns - EnumerateEntries loops indefinitely
foreach…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-jxpf-xq2m-q525</guid>
    </item>
  </channel>
</rss>
