关键信息 影响的产品 Product: smolagents Vendor: Hugging Face Vulnerable Component: LocalPythonExecutor 影响版本 V1.x 漏洞类型 SSRF (Server-Side Request Forgery) - CWE-918 Information Exposure (Data Exfiltration) 根因 漏洞存在于LocalPythonExecutor组件中。尽管执行器使用AST-based过滤来阻止危险的系统调用(RCE),但它缺少对授权的网络功能模块的出站过滤。如果开发人员通过additional_authorized_imports参数授予对requests等模块的访问权限,则执行器无法验证或限制目标URL。攻击者可以利用这一点绕过沙箱的逻辑隔离,访问内部服务或云元数据。 影响 Cloud Credential Theft: 攻击者可以访问云元数据服务(如169.254.169.254)窃取IAM角色临时凭据,导致整个云环境接管。 Internal Network Probing: 代理充当跳板,允许攻击者在防火墙保护下访问未经过身份验证的内部服务。 OOB Data Exfiltration: 即使执行日志被隔离,攻击者也可以通过链式HTTP请求和Out-of-Band(OOB)技术泄露敏感数据。 描述 在对Hugging Face的smolagents库进行安全审计时,我在其LocalPythonExecutor中发现了一个严重的SSRF漏洞。沙箱对授权导入的信任模型不足。当requests库被启用时,攻击者可以诱导代理(通过Prompt Injection或直接代码执行)探测内部网络资源。此外,即使base64模块被限制,攻击者仍可以使用内置的Python方法(如.encode()、.hex())绕过沙箱进行数据泄露。这构成了对隐私和基础设施安全的严重威胁。 认证要求 利用取决于应用程序的实现。如果代理通过未认证的API暴露,触发SSRF则无需登录。 漏洞细节和PoC Vulnerability Location: additional_authorized_imports参数在LocalPythonExecutor初始化中。 Payload: 示例代码展示了用于代码代理和聊天代理的SSRF和OOB数据泄露的盲SSRF利用方式。 建议修复 1. Implement Network Egress Filtering: 为LocalPythonExecutor引入默认阻止名单,阻止对私有IP范围、环回地址和云元数据服务IP的请求。 2. Mandatory URL Validation: 提供回调机制,在任何网络请求发送前对所有URL进行清理和验证。 3. Secure-by-Default Examples: 确保所有提供的服务器示例包括强大的认证机制,以防止未经授权的代理调用。 4. Principle of Least Privilege: 在文档中明确警告授权网络功能模块(如requests或selenium)的安全影响。