
Un PoC de CVE-2024-53924
=IF(A1=200, eval("__import__('os').system(.Pycel, une bibliothèque Python pour travailler avec des feuilles de calcul Excel, y compris l'évaluation symbolique sécurisée de formules Excel, souffre d'une vulnérabilité d'exécution de code où des fonctions natives de Python, par ailleurs bloquées, peuvent être exécutées à l'aide de formules Excel spécialement conçues. Cela permet à un attaquant de fournir un document malveillant qui conduit à l'exécution de code lorsqu'il est évalué par Pycel.
En utilisant le même script de démonstration dans la documentation Pycel, l'analyse d'un document Excel devrait évaluer les fonctions Excel et renvoyer une erreur telle que "Function EVAL is not implemented. EVAL is not a known Excel function" et refuser de s'exécuter.
Cependant, j'ai pu contourner cela en utilisant une formule Excel malveillante qui mène de manière inattendue à l'exécution de code arbitraire lorsqu'elle est exécutée dans Pycel.
Pycel est actuellement non sécurisé et ne peut pas être utilisé en toute confiance pour évaluer ou travailler avec des feuilles de calcul provenant de sources non fiables. Ne pas en tenir compte peut entraîner des résultats dévastateurs, à savoir l'exécution de code.
=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 au préalable)Cela reste valable pour la dernière version de Pycel, 1.0b30.