Skip to content
Heist/ feed
Back to feed
Medium

PhpSpreadsheet HTML writer is vulnerable to Cross-Site Scripting via style information

Type: advisorySources: OSV

PHPSpreadsheet is a pure PHP library for reading and writing spreadsheet files. In affected versions `\PhpOffice\PhpSpreadsheet\Writer\Html` doesn't sanitize spreadsheet styling information such as font names, allowing an attacker to inject arbitrary JavaScript on the page. As a result an attacker may used a crafted spreadsheet to fully takeover a session of a user viewing spreadsheet files as HTML. This issue has been addressed in release version 2.1.0. All users are advised to upgrade. There are no known workarounds for this vulnerability.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2024-45046
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 03:37 UTC · Revision 1

Source evidence

PhpSpreadsheet HTML writer is vulnerable to Cross-Site Scripting via style information

core-osv · Original source

Published 28 Aug 2024, 20:41 UTC

PHPSpreadsheet is a pure PHP library for reading and writing spreadsheet files. In affected versions `\PhpOffice\PhpSpreadsheet\Writer\Html` doesn't sanitize spreadsheet styling information such as font names, allowing an attacker to inject arbitrary JavaScript on the page. As a result an attacker may used a crafted spreadsheet to fully takeover a session of a user viewing spreadsheet files as HTML. This issue has been addressed in release version 2.1.0. All users are advised to upgrade. There are no known workarounds for this vulnerability.

osv:CVE-2024-45046
Complete source record
{
  "id": "cc17de5de7717f539580bdbc5e39411904330ab22428fb90c52ecd89df15d2d3",
  "url": "https://osv.dev/vulnerability/CVE-2024-45046",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "PhpSpreadsheet HTML writer is vulnerable to Cross-Site Scripting via style information",
    "summary": "PHPSpreadsheet is a pure PHP library for reading and writing spreadsheet files. In affected versions `\\PhpOffice\\PhpSpreadsheet\\Writer\\Html` doesn't sanitize spreadsheet styling information such as font names, allowing an attacker to inject arbitrary JavaScript on the page. As a result an attacker may used a crafted spreadsheet to fully takeover a session of a user viewing spreadsheet files as HTML. This issue has been addressed in release version 2.1.0. All users are advised to upgrade. There are no known workarounds for this vulnerability.",
    "evidence": "osv:CVE-2024-45046",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2024-45046",
      "aliases": [
        "CVE-2024-45046",
        "GHSA-wgmf-q9vr-vww6"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/phpoffice/phpspreadsheet",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "59ee38f7480904cd6487e5cbdea4d80ff2758719"
                },
                {
                  "introduced": "4a77798f835119754961a97714f135826a323caa"
                },
                {
                  "fixed": "dbed77bd3a0f68f96c0dd68ad4499d5674fecc3e"
                },
                {
                  "fixed": "f7cf378faed2e11cf4825bf8bafea4922ae44667"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.29.1"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:phpoffice:phpspreadsheet:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "2.0.0"
                      },
                      {
                        "fixed": "2.1.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "f7cf378faed2e11cf4825bf8bafea4922ae44667"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "1.29.0",
            "2.0.0",
            "1.28.0",
            "1.27.0",
            "1.25.2",
            "1.25.1",
            "1.25.0",
            "1.24.1",
            "1.24.0",
            "1.23.0",
            "1.22.0",
            "1.21.0",
            "1.20.0",
            "1.19.0",
            "1.18.0",
            "1.17.1",
            "1.17.0",
            "1.16.0",
            "1.15.0",
            "1.14.1",
            "1.14.0",
            "1.13.0",
            "1.12.0",
            "1.11.0",
            "1.10.1",
            "1.10.0",
            "1.8.2",
            "1.8.1",
            "1.8.0",
            "1.7.0",
            "1.6.0",
            "1.5.0",
            "1.4.1",
            "1.4.0",
            "1.3.1",
            "1.3.0",
            "1.2.1",
            "1.2.0",
            "1.1.0",
            "1.0.0",
            "1.0.0-beta2",
            "phpexcel-last-cherry-picked-commit",
            "phpexcel-last-release-1.8.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-45046.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:49.629272033Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/45xxx/CVE-2024-45046.json",
        "https://github.com/PHPOffice/PhpSpreadsheet/security/advisories/GHSA-wgmf-q9vr-vww6",
        "https://nvd.nist.gov/vuln/detail/CVE-2024-45046",
        "https://github.com/PHPOffice/PhpSpreadsheet/commit/f7cf378faed2e11cf4825bf8bafea4922ae44667",
        "https://github.com/PHPOffice/PhpSpreadsheet/pull/3957"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-79"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/45xxx/CVE-2024-45046.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2024-45046",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 517812,
  "published_at": "2024-08-28T20:41:23.628+00:00"
}