Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-j2xg-cjcx-4677

Опубликовано: 03 янв. 2025
Источник: github
Github: Прошло ревью
CVSS4: 8.3
CVSS3: 7.1

Описание

PhpSpreadsheet allows unauthorized Reflected XSS in Currency.php file

Unauthorized Reflected XSS in Currency.php file

Product: Phpspreadsheet Version: version 3.6.0 CWE-ID: CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') CVSS vector v.3.1: 8.2 (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:N) CVSS vector v.4.0: 8.3 (AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:N/SC:L/SI:H/SA:L) Description: using the /vendor/phpoffice/phpspreadsheet/samples/Wizards/NumberFormat/Currency.php script, an attacker can perform XSS-type attack Impact: executing arbitrary JavaScript code in the browser Vulnerable component: the /vendor/phpoffice/phpspreadsheet/samples/Wizards/NumberFormat/Currency.php file Exploitation conditions: an unauthorized user Mitigation: sanitization of the currency variable Researcher: Aleksey Solovev (Positive Technologies)

Research

The researcher discovered zero-day vulnerability Unauthorized Reflected Cross-Site Scripting (XSS) (in Currency.php file) in Phpspreadsheet.

There is no sanitization in the /vendor/phpoffice/phpspreadsheet/samples/Wizards/NumberFormat/Currency.php file, which leads to the possibility of a XSS attack. Strings are formed using the currency parameter without sanitization, controlled by an attacker.

fig9

Figure 9. A fragment of the query in which a string and a parameter are formed without sanitization

An attacker can prepare a special HTML form that will be automatically sent to the vulnerable scenario.

Listing 5. HTML form that demonstrates the exploitation of the XSS vulnerability

<html> <!-- CSRF PoC - generated by Burp Suite Professional --> <body> <form action="https://192.***.***.***/vendor/phpoffice/phpspreadsheet/samples/Wizards/NumberFormat/Currency.php" method="POST"> <input type="hidden" name="number" value="1234&#46;5678" /> <input type="hidden" name="currency" value="&#36;&apos;&quot;&lt;img&#32;src&#61;1&#32;onerror&#61;alert&#40;&#41;&gt;" /> <input type="hidden" name="decimals" value="2" /> <input type="hidden" name="position" value="1" /> <input type="hidden" name="spacing" value="0" /> <input type="hidden" name="submit" value="Display&#32;Mask" /> <input type="submit" value="Submit request" /> </form> <script> history.pushState('', '', '/'); document.forms[0].submit(); </script> </body> </html>

After sending the script provided in Listing 5, the XSS vulnerability is exploited. Figure 10 shows the execution of arbitrary JavaScript code during the submission of a POST form.

fig10

Figure 10. Executing arbitrary JavaScript code

Credit

This vulnerability was discovered by Aleksey Solovev (Positive Technologies)

Пакеты

Наименование

phpoffice/phpspreadsheet

composer
Затронутые версииВерсия исправления

>= 3.0.0, < 3.7.0

3.7.0

Наименование

phpoffice/phpspreadsheet

composer
Затронутые версииВерсия исправления

<= 1.29.6

1.29.7

Наименование

phpoffice/phpspreadsheet

composer
Затронутые версииВерсия исправления

>= 2.0.0, <= 2.1.5

2.1.6

Наименование

phpoffice/phpspreadsheet

composer
Затронутые версииВерсия исправления

>= 2.2.0, <= 2.3.4

2.3.5

Наименование

phpoffice/phpexcel

composer
Затронутые версииВерсия исправления

<= 1.8.2

Отсутствует

EPSS

Процентиль: 44%
0.00215
Низкий

8.3 High

CVSS4

7.1 High

CVSS3

Дефекты

CWE-79

Связанные уязвимости

CVSS3: 5.4
nvd
около 1 года назад

PhpSpreadsheet is a PHP library for reading and writing spreadsheet files. Versions prior to 3.7.0, 2.3.5, 2.1.6, and 1.29.7 are vulnerable to unauthorized reflected cross-site scripting in the `Currency.php` file. Using the `/vendor/phpoffice/phpspreadsheet/samples/Wizards/NumberFormat/Currency.php` script, an attacker can perform a cross-site scripting attack. Versions 3.7.0, 2.3.5, 2.1.6, and 1.29.7 contain a patch for the issue.

CVSS3: 7.1
fstec
около 1 года назад

Уязвимость сценария Currency.php (phpoffice/phpspreadsheet/samples/Wizards/NumberFormat/Currency.php) PHP-библиотеки PhpSpreadsheett, позволяющая нарушителю проводить межсайтовые сценарные атаки

EPSS

Процентиль: 44%
0.00215
Низкий

8.3 High

CVSS4

7.1 High

CVSS3

Дефекты

CWE-79