CVE-2025-63603MCP Data Science Server 0.1.6版本中存在严重的命令执行漏洞。该漏洞位于safe_eval()函数中,该函数使用Python的exec()来执行用户提供的脚本。然而,由于代码实现时未正确限制Python的__builtins__内置模块,导致攻击者可以绕过安全限制,访问所有Python内置函数,包括__import__、exec、eval和open等高危函数。攻击者通过向run_script工具提交恶意构造的Python代码,可以在服务器上执行任意系统命令,实现对目标系统的完全控制。由于该漏洞的利用不需要任何认证或特殊权限,且可通过网络直接触发,因此具有极高的实际威胁性。任何部署了该组件的服务都面临被入侵的风险,攻击者可能窃取敏感数据、植入后门或对系统进行进一步横向渗透。
漏洞的核心问题在于safe_eval()函数(src/mcp_server_ds/server.py:108)的实现缺陷。该函数使用Python的exec()内置函数来执行用户传入的脚本代码,但仅对exec()的locals参数进行了限制,而未对globals参数中的__builtins__进行过滤。在Python中,当globals字典中不包含__builtins__键时,解释器会自动添加对所有内置函数和对象的引用。这意味着,即使用户代码看似被限制在沙箱环境中,实际上仍然可以通过__builtins__访问到__import__、exec、eval等危险函数。攻击者可以利用这一特性,通过类似__builtins__['__import__']('os').system('whoami')的Payload执行系统命令,或使用exec()直接执行任意Python代码。该漏洞的利用条件极低:无需认证、无需特殊权限、只需能访问到run_script接口即可。由于MCP服务器通常作为数据处理服务运行,其权限可能较高,因此漏洞的潜在危害更加严重。