<?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>Thu, 08 Oct 2026 16:00:18 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-107223</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-107223</link>
      <description>&lt;p&gt;Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.1.0 to 2.11.0, flatCols expands file-loaded column ranges without validating Min and Max against the worksheet column limit. SetColWidth reaches flatCols, which expands xlsxCol.Min through xlsxCol.Max without enforcing MaxColumns. When a crafted worksheet supplies an oversized col max attribute and the application invokes a column mutator, flatCols performs a deep copy and append for every attacker-selected column number, allowing an attacker to consume excessive CPU and memory or trigger OOM. No fixed version is available as of this review.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.1.0 to 2.11.0, flatCols expands file-loaded column ranges without validating Min and Max against the worksheet column limit. SetColWidth reaches flatCols, which expands xlsxCol.Min through xlsxCol.Max without enforcing MaxColumns. When a crafted worksheet supplies an oversized col max attribute and the application invokes a column mutator, flatCols performs a deep copy and append for every attacker-selected column number, allowing an attacker to consume excessive CPU and memory or trigger OOM. No fixed version is available as of this review.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-107223</guid>
    </item>
    <item>
      <title>GHSA-fq3v-74gv-27gm — Excelize: Unbounded &lt;col max&gt; attribute is loaded with no MaxColumns check and expanded per-column by flatCols(), so an…</title>
      <link>https://db.gcve.eu/vuln/ghsa-fq3v-74gv-27gm</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/xuri/excelize/v2&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The `max` attribute of a `&amp;lt;col&amp;gt;` element in `xl/worksheets/sheetN.xml` is read verbatim on open with no check against `MaxColumns`, and `flatCols()` then walks `Min..Max` doing a `deepcopy.Copy` and `append` per iteration. Executed: `max=&amp;#34;300000&amp;#34;`, only about 18x past the real 16384 limit, cost 46.2 s of CPU and 122 MB on a single `SetColWidth` call, and the growth is linear in `max` up to 2^31-1.&lt;/p&gt;
&lt;p&gt;Confirmed at `ae2113b` (HEAD at the time of audit).&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;`col.go:547`, `flatCols()`, with the two loops at `:549` and `:564`:&lt;/p&gt;
&lt;p&gt;```go
for i := col.Min; i &amp;lt;= col.Max; i++ {
...
for i := column.Min; i &amp;lt;= column.Max; i++ { ... fc = append(fc, deepcopy.Copy(...)) }
```&lt;/p&gt;
&lt;p&gt;`column.Min` and `column.Max` are plain int attributes on `xmlWorksheet.go:279-280`, bound straight from the file. `MaxColumns` is 16384 (`templates.go:176`) and nothing in the parse path compares against it.&lt;/p&gt;
&lt;p&gt;The contrast that makes this an oversight rather than a design decision is inside the callers themselves. `SetColWidth` validates its own column argument through `parseColRange`, which clamps to `MaxColumns`. But `flatCols` iterates `ws.Cols.Col`, the file-loaded slice, so the caller&amp;#39;s validated argument never constrains the loop. The crafted column expands no matter which column the caller touches.&lt;/p&gt;
&lt;p&gt;The row axis has the guard this axis is missing: GHSA-h69g-9hx6-f3v4 capped `checkSheet`&amp;#39;s row allocation at `TotalRows`, and GHSA-q5j5-6p94-4gwc capped streaming `Rows.Next`. There is no column-…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/xuri/excelize/v2&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The `max` attribute of a `&amp;lt;col&amp;gt;` element in `xl/worksheets/sheetN.xml` is read verbatim on open with no check against `MaxColumns`, and `flatCols()` then walks `Min..Max` doing a `deepcopy.Copy` and `append` per iteration. Executed: `max=&amp;#34;300000&amp;#34;`, only about 18x past the real 16384 limit, cost 46.2 s of CPU and 122 MB on a single `SetColWidth` call, and the growth is linear in `max` up to 2^31-1.&lt;/p&gt;
&lt;p&gt;Confirmed at `ae2113b` (HEAD at the time of audit).&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;`col.go:547`, `flatCols()`, with the two loops at `:549` and `:564`:&lt;/p&gt;
&lt;p&gt;```go
for i := col.Min; i &amp;lt;= col.Max; i++ {
...
for i := column.Min; i &amp;lt;= column.Max; i++ { ... fc = append(fc, deepcopy.Copy(...)) }
```&lt;/p&gt;
&lt;p&gt;`column.Min` and `column.Max` are plain int attributes on `xmlWorksheet.go:279-280`, bound straight from the file. `MaxColumns` is 16384 (`templates.go:176`) and nothing in the parse path compares against it.&lt;/p&gt;
&lt;p&gt;The contrast that makes this an oversight rather than a design decision is inside the callers themselves. `SetColWidth` validates its own column argument through `parseColRange`, which clamps to `MaxColumns`. But `flatCols` iterates `ws.Cols.Col`, the file-loaded slice, so the caller&amp;#39;s validated argument never constrains the loop. The crafted column expands no matter which column the caller touches.&lt;/p&gt;
&lt;p&gt;The row axis has the guard this axis is missing: GHSA-h69g-9hx6-f3v4 capped `checkSheet`&amp;#39;s row allocation at `TotalRows`, and GHSA-q5j5-6p94-4gwc capped streaming `Rows.Next`. There is no column-…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-fq3v-74gv-27gm</guid>
    </item>
  </channel>
</rss>
