Description
PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. Prior to 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0, Worksheet\Drawing::setPath validates only the initial external-image URL with setIsWhitelisted when setAllowExternalImages is enabled. The HTTP stream context permits PHP to follow a redirect without applying the callback to the redirected URL, so a permitted image host can redirect the server to an internal address and cause a blind GET request. The response body is not returned to the attacker because the reader validates the downloaded content as an image and removes the temporary file, but internal GET-driven endpoints, network reachability, and cloud metadata endpoints may be reached. This issue is fixed in versions 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0.
Published: 2026-10-22
Score: 6.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Server‑Side Request Forgery via image redirect
Action: Immediate Patch
AI Analysis

Impact

The vulnerability resides in PhpSpreadsheet’s Drawing::setPath method, which validates only the original image URL when external images are allowed. A crafted URL can redirect to an internal host; the PHP stream context follows the redirect without reapplying the whitelist, resulting in a blind GET request to the internal address. While the returned content is discarded, the request can still invoke internal services, accessible network resources, or cloud metadata endpoints, enabling an attacker to discover or interact with internal infrastructure.

Affected Systems

PHPOffice’s PhpSpreadsheet library, versions prior to 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0, is affected. Any project that uses these older releases and processes spreadsheets containing external image references is potentially vulnerable.

Risk and Exploitability

The CVSS score for this issue is 6.4, indicating moderate severity. No EPSS score is published and the vulnerability is not listed in the CISA KEV catalog, suggesting no confirmed or widespread exploitation yet. The likelihood of exploitation remains modest; an attacker would need to supply a malicious spreadsheet that the application processes, but once the file is executed the SSRF can be triggered with a single redirect. The impact is confined to internal network connectivity and discovery rather than immediate code execution or data exfiltration, yet it can be leveraged to access sensitive internal endpoints and cloud metadata which could serve further attack stages.

Generated by OpenCVE AI on October 22, 2026 at 18:34 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade PhpSpreadsheet to at least version 1.30.7, 2.1.19, 2.4.8, 3.10.8, or 5.10.0 to remove the SSRF flaw.
  • Disable external image loading by setting AllowExternalImages to false in the library configuration if external images are not required.
  • Implement additional input validation by checking the destination URL for internal addresses and blocking redirects before the file is processed.

Generated by OpenCVE AI on October 22, 2026 at 18:34 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-2phh-27fw-q4gc PhpSpreadsheet: SSRF whitelist bypass via unre-validated HTTP redirect in Drawing::setPath external image loading
History

Thu, 29 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 23 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
First Time appeared Phpoffice
Phpoffice phpspreadsheet
Vendors & Products Phpoffice
Phpoffice phpspreadsheet

Thu, 22 Oct 2026 17:45:00 +0000

Type Values Removed Values Added
Description PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. Prior to 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0, Worksheet\Drawing::setPath validates only the initial external-image URL with setIsWhitelisted when setAllowExternalImages is enabled. The HTTP stream context permits PHP to follow a redirect without applying the callback to the redirected URL, so a permitted image host can redirect the server to an internal address and cause a blind GET request. The response body is not returned to the attacker because the reader validates the downloaded content as an image and removes the temporary file, but internal GET-driven endpoints, network reachability, and cloud metadata endpoints may be reached. This issue is fixed in versions 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0.
Title PhpSpreadsheet: SSRF whitelist bypass via unre-validated HTTP redirect in Drawing::setPath external image loading
Weaknesses CWE-863
CWE-918
References
Metrics cvssV3_1

{'score': 6.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N'}


Subscriptions

Phpoffice Phpspreadsheet
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-29T11:50:16.342Z

Reserved: 2026-10-09T20:32:44.301Z

Link: CVE-2026-108360

cve-icon Vulnrichment

Updated: 2026-10-29T11:49:49.393Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-22T18:17:26.897

Modified: 2026-10-29T12:17:09.500

Link: CVE-2026-108360

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T20:00:12Z

Weaknesses
  • CWE-863

    Incorrect Authorization

  • CWE-918

    Server-Side Request Forgery (SSRF)