{"items":[{"id":"NVI-00005852","kind":"vulnerability","title":"Cross-Site Scripting (XSS) vulnerability in generateNavigation() function in PhpSpreadsheet","revision":3,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected.","NVD lastModified does not establish freshness of every associated CPE record."],"lifecycle":"active","identifiers":["GHSA-79xx-vf93-p7cx","CVE-2025-22131"],"plain_summary":"OSV carries this publisher advisory for phpoffice/phpspreadsheet, phpoffice/phpspreadsheet, phpoffice/phpspreadsheet, phpoffice/phpspreadsheet, phpoffice/phpexcel. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"The original advisory lists fixed boundaries 3.8.0 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 1.29.8 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.1.7 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.3.6 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-0781be99cc2daac161347a0b50394203"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-06-17T08:45:13.620Z","value":"6.1 MEDIUM (3.1)","meaning":"nvd@nist.gov severity; no combined Null risk score.","source_id":"sr-1675381f96d006b0a8b75ab2a51db59c"},{"kind":"CVSS","as_of":"2026-06-17T08:45:13.620Z","value":"5.1 MEDIUM (4.0)","meaning":"security-advisories@github.com severity; no combined Null risk score.","source_id":"sr-1675381f96d006b0a8b75ab2a51db59c"},{"kind":"EPSS","as_of":"2026-11-03T12:00:27.000Z","value":"0.396%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.33844. Missing scores are unknown.","source_id":"sr-0781be99cc2daac161347a0b50394203"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-9ef7f9a70275543c33ff6a20443ca619","url":"https://github.com/advisories/GHSA-79xx-vf93-p7cx","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-79xx-vf93-p7cx","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:41:59.947Z"},{"id":"sr-1675381f96d006b0a8b75ab2a51db59c","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-22131","basis":"official_catalog","notes":"This product uses data from the NVD API but is not endorsed or certified by the NVD.","title":"CVE-2025-22131","publisher":"NIST National Vulnerability Database","observed_at":"2026-11-01T01:39:15.478Z"},{"id":"sr-0781be99cc2daac161347a0b50394203","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2025-22131","publisher":"FIRST EPSS","observed_at":"2026-11-03T17:44:07.765Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 3.0.0; fixed 3.8.0"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 0; fixed 1.29.8"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 2.0.0; fixed 2.1.7"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 2.2.0; fixed 2.3.6"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpexcel","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 1.8.2"]}],"null_published_at":"2026-11-04T10:04:41.556Z","source_updated_at":"2025-03-06T18:37:31.054Z","source_disclosed_at":"2025-01-21T21:09:13.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-10-31T21:41:59.947Z"},{"id":"NVI-00005852","kind":"vulnerability","title":"Cross-Site Scripting (XSS) vulnerability in generateNavigation() function in PhpSpreadsheet","revision":2,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected.","NVD lastModified does not establish freshness of every associated CPE record."],"lifecycle":"active","identifiers":["GHSA-79xx-vf93-p7cx","CVE-2025-22131"],"plain_summary":"OSV carries this publisher advisory for phpoffice/phpspreadsheet, phpoffice/phpspreadsheet, phpoffice/phpspreadsheet, phpoffice/phpspreadsheet, phpoffice/phpexcel. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"The original advisory lists fixed boundaries 3.8.0 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 1.29.8 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.1.7 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.3.6 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-1675381f96d006b0a8b75ab2a51db59c"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-06-17T08:45:13.620Z","value":"6.1 MEDIUM (3.1)","meaning":"nvd@nist.gov severity; no combined Null risk score.","source_id":"sr-1675381f96d006b0a8b75ab2a51db59c"},{"kind":"CVSS","as_of":"2026-06-17T08:45:13.620Z","value":"5.1 MEDIUM (4.0)","meaning":"security-advisories@github.com severity; no combined Null risk score.","source_id":"sr-1675381f96d006b0a8b75ab2a51db59c"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-9ef7f9a70275543c33ff6a20443ca619","url":"https://github.com/advisories/GHSA-79xx-vf93-p7cx","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-79xx-vf93-p7cx","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:41:59.947Z"},{"id":"sr-1675381f96d006b0a8b75ab2a51db59c","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-22131","basis":"official_catalog","notes":"This product uses data from the NVD API but is not endorsed or certified by the NVD.","title":"CVE-2025-22131","publisher":"NIST National Vulnerability Database","observed_at":"2026-11-01T01:39:15.478Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 3.0.0; fixed 3.8.0"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 0; fixed 1.29.8"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 2.0.0; fixed 2.1.7"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 2.2.0; fixed 2.3.6"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpexcel","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 1.8.2"]}],"null_published_at":"2026-11-01T01:45:38.495Z","source_updated_at":"2025-03-06T18:37:31.054Z","source_disclosed_at":"2025-01-21T21:09:13.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Source facts changed; compare the preserved prior revision.","null_first_observed_at":"2026-10-31T21:41:59.947Z"},{"id":"NVI-00005852","kind":"vulnerability","title":"Cross-Site Scripting (XSS) vulnerability in generateNavigation() function in PhpSpreadsheet","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-79xx-vf93-p7cx","CVE-2025-22131"],"plain_summary":"OSV carries this publisher advisory for phpoffice/phpspreadsheet, phpoffice/phpspreadsheet, phpoffice/phpspreadsheet, phpoffice/phpspreadsheet, phpoffice/phpexcel. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"The original advisory lists fixed boundaries 3.8.0 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 1.29.8 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.1.7 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.3.6 for phpoffice/phpspreadsheet. Confirm the publisher’s latest guidance.","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-9ef7f9a70275543c33ff6a20443ca619","url":"https://github.com/advisories/GHSA-79xx-vf93-p7cx","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-79xx-vf93-p7cx","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:41:59.947Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 3.0.0; fixed 3.8.0"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 0; fixed 1.29.8"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 2.0.0; fixed 2.1.7"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpspreadsheet","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 2.2.0; fixed 2.3.6"]},{"certainty":"source_listed","source_ids":["sr-9ef7f9a70275543c33ff6a20443ca619"],"technology":"phpoffice/phpexcel","known_exclusions":[],"conditions_summary":"### Summary\nThe researcher discovered zero-day vulnerability Cross-Site Scripting (XSS) vulnerability in the code which translates the XLSX file into a HTML representation and displays it in the response.\n\n### Details\nWhen generating the HTML from an xlsx file containing multiple sheets, a navigation menu is created. This menu includes the sheet names, which are not sanitized. As a result, an attacker can exploit this vulnerability to execute JavaScript code.\n\n```php\n        // Construct HTML\n        $html = '';\n\n        // Only if there are more than 1 sheets\n        if (count($sheets) > 1) {\n            // Loop all sheets\n            $sheetId = 0;\n\n            $html .= '' . PHP_EOL;\n\n            foreach ($sheets as $sheet) {\n                $html .= '  ' . $sheet->getTitle() . '' . PHP_EOL;\n                ++$sheetId;\n            }\n\n            $html .= '' . PHP_EOL;\n        }\n```\n\n### PoC\n1. Create an XLSX file with multiple sheets : \n!image\n\n2. Generate the HTML content \n```php\n<?php\n\trequire _","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 1.8.2"]}],"null_published_at":"2026-10-31T22:13:05.841Z","source_updated_at":"2025-03-06T18:37:31.054Z","source_disclosed_at":"2025-01-21T21:09:13.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-10-31T21:41:59.947Z"}],"next_cursor":null,"snapshot_revision":"42594"}