<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-08T16:00:09.321866+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/fkie_cve-2026-107224</id>
    <title>fkie_cve-2026-107224</title>
    <updated>2026-10-08T16:00:09.339682+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.1.0 to 2.11.0, a Zip64 uncompressed size with the high bit set is converted from uint64 to a negative int64 before signed size-limit checks and allocation. ReadZipReader obtains UncompressedSize64 through FileInfo.Size and passes the wrapped negative value to readFile. When a crafted Zip64 entry declares an uncompressed size from 2^63 through 2^64-1 and the workbook is opened, the negative size bypasses unzip limits and reaches make as a negative capacity, allowing an attacker to panic during workbook opening. No fixed version is available as of this review.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-107224"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-fw94-4wwp-w8pw</id>
    <title>GHSA-fw94-4wwp-w8pw — Excelize: A Zip64 uncompressed-size of 2^63 panics OpenFile/OpenReader</title>
    <updated>2026-10-08T16:00:09.339739+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Go: github.com/xuri/excelize/v2</p>
<p>### Summary</p>
<p>A Zip64 uncompressed-size of 2^63 casts to a negative int64 that bypasses the unzip-size guard and reaches make([]byte, 0, negativeCap)</p>
<p>A Zip64 uncompressed-size in the range [2^63, 2^64) casts to a negative `int64` in `zip.File.FileInfo().Size()`, and `ReadZipReader` does signed arithmetic on that value, so the total-decompression guard is bypassed and the negative size reaches `make([]byte, 0, size)` in `readFile`. A 159-byte crafted file panics `OpenFile` and `OpenReader` with `runtime error: makeslice: cap out of range`.</p>
<p>The guard, at `lib.go:44-46` on HEAD `ae2113b`:</p>
<p>```go
fileSize := v.FileInfo().Size()
unzipSize += fileSize
if unzipSize &gt; f.options.UnzipSizeLimit {
	return fileList, worksheets, newUnzipSizeLimitError(f.options.UnzipSizeLimit)
}
```</p>
<p>`FileInfo().Size()` returns `int64(UncompressedSize64)`. `UncompressedSize64` is read from the Zip64 extended-information extra record in the central directory and is fully attacker controlled, so any value with the top bit set arrives as a negative `int64`. `unzipSize` then goes negative and the comparison against `UnzipSizeLimit` (default `1000 &lt;&lt; 24`, `templates.go:193`) is false no matter how many such entries the archive contains.</p>
<p>The same negative value also fails the two stream-to-temp checks at `lib.go:53` and `lib.go:64` (`fileSize &gt; f.options.UnzipXMLSizeLimit`), so the entry is not diverted to a temp file and control reaches `readFile`:</p>
<p>```go
// lib.go:150
dat := make([]byte, 0, file.FileInfo()…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-fw94-4wwp-w8pw"/>
  </entry>
</feed>
