Skip to main content

Excelize EUVDEUVD-2026-94527

| CVE-2026-107212 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-07 GitHub_M GHSA-jw42-f3rr-4cc3
7.5
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
7.5 HIGH

Untrusted XLSX parsed over network with no auth/interaction (AV:N/PR:N/UI:N/AC:L); only availability affected (C:N/I:N), rated A:H for attacker-controlled sustained CPU consumption though single-core impact borders A:L.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

5
POC Analysis Generated
Oct 07, 2026 - 19:22 vuln.today
Metadata Corrected
Oct 07, 2026 - 18:40 vuln.today
tag: Go added
Metadata Corrected
Oct 07, 2026 - 18:40 vuln.today
tag: Microsoft removed
Analysis Generated
Oct 07, 2026 - 18:21 vuln.today
CVE Published
Oct 07, 2026 - 17:29 cve.org
HIGH 7.5

DescriptionCVE.org

Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.1.0 to 2.11.0, Rows.Columns accepts a look-ahead row number above TotalRows without applying the limit enforced by Rows.Next. File.GetRows relies on Rows.Next and Rows.Columns, but Rows.Columns consumes the row r attribute without the limit check in Rows.Next. When a crafted worksheet places an oversized row number after an ordinary valid row and the application calls GetRows or iterates Rows, the iterator advances through every missing row number instead of rejecting the workbook, allowing an attacker to consume a CPU core for an attacker-controlled duration. No fixed version is available as of this review.

AnalysisAI

Denial of service in the Excelize Go library (versions 2.1.0 through 2.11.0) allows an attacker-controlled spreadsheet to pin a CPU core for an arbitrary duration when a Go application calls File.GetRows or iterates Rows.Next/Rows.Columns on the untrusted file. The bug is an inconsistency in the row-number limit: Rows.Next enforces the TotalRows (1,048,576) cap, but Rows.Columns consumes the 'r' attribute of a crafted <row> element located after an ordinary valid row without that cap, so the iterator walks every missing row number instead of rejecting the workbook. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

No credit card · 7-day full trial

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation Requires the application to invoke File.GetRows or iterate via Rows.Next/Rows.Columns (Excelize 2.1.0 through 2.11.0) on an attacker-supplied XLSX whose worksheet XML contains a <row> element with an 'r' attribute greater than TotalRows (1048576) positioned AFTER an ordinary valid row - that specific ordering bypasses the limit Rows.Next would otherwise enforce. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment This is a genuine but bounded denial-of-service issue (CWE-770, uncontrolled resource consumption). … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation No vendor-released patch or fixed version was available at the time of this review; the state of remediation is 'Upstream fix available (PR/commit); released patched version not independently confirmed.' Apply the upstream fix from PR #2438 / commit 01a9ff32fb3c1f873cf01205e1b8a3285b0e1d23 - it adds a rows.err short-circuit in Rows.Next and returns ErrMaxRows when Rows.Columns reads an 'r' attribute greater than TotalRows - by upgrading to a release that contains it, vendoring the commit, or using a Go module replace directive until a tagged version ships (trade-off: tracking an unreleased commit means manual update tracking). … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, inventory all Go services and SBOMs for github.com/xuri/excelize/v2 at versions 2.1.0 through 2.11.0, prioritizing any endpoint, batch job, or backend worker that accepts or processes externally supplied XLSX files, and apply immediate throttling - per-request CPU and wall-clock timeouts, file-size and concurrency limits, and isolated processing workers - with alerting on anomalous CPU spikes on upload paths; if an affected service is internet-facing and cannot be constrained, temporarily disable XLSX parsing or gate it behind manual review. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

More in Go

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2016-5386 HIGH
8.1 Jul 19

The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and there

CVE-2025-68121 CRITICAL POC
10.0 Feb 05

Critical certificate validation bypass in Go crypto/tls during session resumption. If ClientCAs or RootCAs fields are mu

CVE-2019-14809 CRITICAL POC
9.8 Aug 13

net/url in Go before 1.11.13 and 1.12.x before 1.12.8 mishandles malformed hosts in URLs, leading to an authorization by

CVE-2026-90942 CRITICAL POC
9.3 Sep 14

Casdoor through 4.4.0 exposes its instance-wide built-in JWT signing private key unmasked through the /api/get-certs and

CVE-2026-101090 CRITICAL POC
9.3 Sep 27

Host header injection in Nezha 2.2.3's OAuth2 redirect endpoint (/api/v1/oauth2/{provider}) allows an unauthenticated re

CVE-2026-78428 HIGH POC
8.8 Sep 17

Session cross-wiring in SUSE NeuVector before 5.6.1 allows an unauthenticated remote attacker to obtain another user's a

CVE-2026-92791 HIGH POC
8.7 Sep 16

Unauthenticated path traversal in Uber Kraken through 0.1.29 allows remote attackers to read files outside the configure

CVE-2018-7187 HIGH POC
8.8 Feb 16

The "go get" implementation in Go 1.9.4, when the -insecure command-line option is used, does not validate the import pa

CVE-2026-16651 HIGH POC
8.7 Sep 21

Denial of service in Temporal Server allows an authenticated caller holding at least namespace read permission to crash

CVE-2026-82405 HIGH POC
8.7 Sep 23

Account takeover in Klever-Go's KleverUpdateAccountPermission built-in (all versions prior to 1.7.20) allows an attacker

CVE-2026-82409 HIGH POC
8.4 Sep 23

Maliciously crafted on-chain account names processed by Klever-Go prior to 1.7.20 are spliced into Elasticsearch _bulk r

Share

EUVD-2026-94527 vulnerability details – vuln.today

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