CVE-2023-54345Frappe Framework ERPNext 13.4.0版本中存在一处沙箱逃逸安全漏洞。该漏洞由于RestrictedPython未能有效隔离执行环境,具有System Manager权限的攻击者可利用服务器脚本功能,通过访问Python对象的gi_frame属性进行帧内省。利用此特性,攻击者能够遍历调用栈并调用os.popen等危险函数,最终在服务器上执行任意系统代码,严重威胁系统安全。
该漏洞的核心在于Frappe Framework在处理服务器脚本时使用了RestrictedPython,但其安全配置未能完全限制对Python内部对象的访问。攻击者利用Python解释器的帧对象特性,在受限代码中通过gi_frame属性获取当前执行帧,进而访问全局命名空间或调用栈中的上层对象。利用此特性,攻击者可以遍历f_back属性,回溯调用栈直至找到包含__builtins__或已导入os模块的上下文环境。一旦定位到os模块,即可调用os.popen或subprocess等函数执行任意系统命令。这种利用方式绕过了沙箱的隔离机制,实现了从受限环境逃逸至宿主操作系统,导致远程代码执行。