Skip to main content

Excelize CVE-2026-59161

| EUVDEUVD-2026-42936 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-07-10 GitHub_M GHSA-q5j5-6p94-4gwc
8.7
CVSS 4.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
7.5 HIGH

Attacker controls only an untrusted input file (AV:N, PR:N, UI:N, AC:L) and impact is a pure resource-exhaustion DoS, so C:N/I:N with A:H and unchanged scope.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
3.3 MEDIUM
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

3
Patch available
Jul 10, 2026 - 18:01 EUVD
Analysis Generated
Jul 10, 2026 - 16:52 vuln.today
CVE Published
Jul 10, 2026 - 15:47 cve.org
HIGH 8.7

DescriptionCVE.org

Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. Prior to 2.11.0, the streaming worksheet reader used by Rows and GetRows does not enforce the TotalRows limit on the row r attribute, allowing a small XLSX file with a row number above 1048576 and no cell coordinate to make GetRows append empty rows up to the attacker-controlled index and consume excessive memory and CPU. This issue is fixed in version 2.11.0.

AnalysisAI

Uncontrolled memory and CPU consumption in Excelize (qax-os/excelize), the widely used Go library for reading and writing Microsoft Excel spreadsheets, before version 2.11.0 lets a crafted XLSX file trigger a denial of service. The streaming worksheet reader behind the Rows and GetRows APIs fails to enforce the TotalRows (1,048,576) limit on the row 'r' attribute, so a tiny file declaring an out-of-range row index with no cell coordinate forces GetRows to allocate empty rows up to that attacker-chosen index. No public exploit identified at time of analysis, but the trigger is trivial to construct and the fix is confined to a single validation check.

Technical ContextAI

Excelize is a popular pure-Go library for programmatically parsing and generating XLSX (Office Open XML SpreadsheetML) workbooks. In that format rows are represented as <row r="N"> elements, where N is a 1-based index; the specification caps a worksheet at 1,048,576 rows (the library's TotalRows constant). The vulnerability is a CWE-400 Uncontrolled Resource Consumption flaw: the streaming reader used by Rows/GetRows validates cell coordinates but does not clamp the standalone row 'r' attribute against TotalRows. When a row element supplies a huge r value (far above 1,048,576) and omits cell coordinates, the reader backfills empty rows to reach that index, so a few bytes of XML expand into millions-to-billions of in-memory row slots. The affected package per CPE is cpe:2.3:a:qax-os:excelize, all versions prior to 2.11.0.

RemediationAI

Vendor-released patch: 2.11.0 - upgrade the dependency to v2.11.0 or later and rebuild/redeploy as the primary and complete fix; the corrective change is in PR https://github.com/qax-os/excelize/pull/2331 and commit 93f0b3caed37f21ef5079e3259c6c21dcfe68453, with details in advisory https://github.com/qax-os/excelize/security/advisories/GHSA-q5j5-6p94-4gwc. If an immediate upgrade is not possible, reduce exposure by refusing or sandboxing untrusted XLSX uploads, imposing strict per-request memory and CPU limits (for example container memory caps or a killable worker process) so one malicious file cannot exhaust the host, and where feasible pre-validating the worksheet XML to reject any row element whose r attribute exceeds 1,048,576 before calling GetRows. These controls add latency and processing complexity and do not remove the underlying amplification, so treat them as stopgaps until v2.11.0 is deployed.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Server 16.0 Affected
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.0 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected
openSUSE Leap 16.0 Affected

Share

CVE-2026-59161 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy