
PoC для CVE-2024-53924
=IF(A1=200, eval("__import__('os').system(.Pycel — библиотека Python для работы с листами Excel, включающая символьную безопасную оценку формул Excel, страдает от уязвимости выполнения кода, при которой нативные функции Python, которые в противном случае заблокированы, могут быть выполнены с помощью специально созданных формул Excel. Это позволяет атакующему предоставить вредоносный документ, который приводит к выполнению кода при его оценке Pycel.
Используя тот же демонстрационный скрипт из документации Pycel, анализ документа Excel должен вычислить функции Excel и вернуть ошибку, например, "Function EVAL is not implemented. EVAL is not a known Excel function", и отказаться от выполнения.
Однако мне удалось обойти это с помощью вредоносной формулы Excel, которая неожиданно приводит к произвольному выполнению кода при запуске в Pycel.
Pycel в настоящее время небезопасен и ему нельзя доверять при оценке или работе с листами из недоверенных источников. Несоблюдение этого требования может привести к разрушительным последствиям в виде выполнения кода.
=IF(A1=200, eval("__import__('os').system('calc.exe')"), @LINEST(C1:C18,B1:B18))
=A1*eval("__import__('os').system('calc.exe')")
pip install -r requirements.txt)Это по-прежнему актуально для последней версии Pycel 1.0b30.