
CVE-2024-53924에 대한 PoC
=IF(A1=200, eval("__import__('os').system( 하위 문자열로 시작하는 셀의 조작된 수식을 통해 코드 실행이 가능합니다.Excel 워크시트 작업 및 Excel 수식의 기호적 안전 평가를 위한 Python 라이브러리인 Pycel에는, 평소에는 차단되는 Python 네이티브 함수가 특수하게 조작된 Excel 수식을 사용하여 실행될 수 있는 코드 실행 취약점이 존재합니다. 이로 인해 공격자는 Pycel이 평가할 때 코드 실행으로 이어지는 악성 문서를 제공할 수 있습니다.
Pycel 문서에 있는 동일한 데모 스크립트를 사용하면, Excel 문서를 분석할 때 Excel 함수를 평가하고 "Function EVAL is not implemented. EVAL is not a known Excel function"과 같은 오류를 반환하며 실행을 거부해야 합니다.
하지만 저는 Pycel에서 실행될 때 예기치 않게 임의 코드 실행으로 이어지는 악성 Excel 수식을 사용하여 이를 우회할 수 있었습니다.
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에서도 여전히 유효합니다.