Description
Spreadsheet::XLSX versions before 0.19 for Perl allow code execution via string eval of number format conditions in ExcelFmt.

When a number format has a condition such as [>100], ExcelFmt chooses the format section by passing the condition and the cell value to a string eval. Both come from the workbook, and the eval runs while Spreadsheet::XLSX->new parses it.

An attacker who supplies an XLSX file can run arbitrary Perl code.
Published: 2026-10-29
Score: n/a
EPSS: n/a
KEV: No
Impact: Remote code execution
Action: Immediate Patch
AI Analysis

Impact

Spreadsheet::XLSX before version 0.19 processes custom Excel number format conditions by passing the condition string and the cell value to Perl's string eval function during parsing. Because both the condition and the cell value originate from the workbook, an attacker can craft an XLSX file that contains malicious code embedded within a number format condition. When Spreadsheet::XLSX parses the workbook, the eval executes that code with full privileges of the running Perl process, allowing arbitrary Perl code execution.

Affected Systems

The vulnerability affects the Perl module Spreadsheet::XLSX, specifically versions earlier than 0.19. Any Perl application that loads a legacy Spreadsheet::XLSX library and processes user‑supplied XLSX files is susceptible. Systems using newer releases (0.19 or later) are not impacted.

Risk and Exploitability

The flaw provides a remote code execution when an attacker can supply a crafted XLSX file to the application. The exploit requires only that the application load the old library while parsing an input file; no additional network authentication is necessary. No exploit probability is available in EPSS, and the vulnerability is not listed in CISA's KEV catalog, but the nature of the flaw and the lack of a guard around eval mean the risk is high. Official advice is to patch immediately.

Generated by OpenCVE AI on October 29, 2026 at 22:24 UTC.

Remediation

Vendor Solution

Upgrade to Spreadsheet-XLSX 0.19 or later.


OpenCVE Recommended Actions

  • Upgrade Spreadsheet::XLSX to version 0.19 or later as per vendor recommendation.
  • Audit deployed software to verify that all instances use the updated library and remove any legacy copies.
  • If upgrading cannot be performed immediately, limit file uploads to trusted sources and consider inserting a validation layer that rejects custom Excel number format conditions before they reach the library.

Generated by OpenCVE AI on October 29, 2026 at 22:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 29 Oct 2026 21:45:00 +0000

Type Values Removed Values Added
Description Spreadsheet::XLSX versions before 0.19 for Perl allow code execution via string eval of number format conditions in ExcelFmt. When a number format has a condition such as [>100], ExcelFmt chooses the format section by passing the condition and the cell value to a string eval. Both come from the workbook, and the eval runs while Spreadsheet::XLSX->new parses it. An attacker who supplies an XLSX file can run arbitrary Perl code.
Title Spreadsheet::XLSX versions before 0.19 for Perl allow code execution via string eval of number format conditions in ExcelFmt
Weaknesses CWE-95
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-10-29T21:37:40.697Z

Reserved: 2026-10-23T21:59:48.535Z

Link: CVE-2026-115943

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-29T22:17:00.767

Modified: 2026-10-29T22:17:00.767

Link: CVE-2026-115943

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T22:30:13Z

Weaknesses
  • CWE-95

    Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection')