### 关键信息总结 - **漏洞类型**: 不安全的YAML反序列化 - **影响范围**: 在PyDrive2运行的同一目录中存在恶意构造的YAML文件,或者通过LoadSettingsFile加载时,都会导致任意代码执行。 - **受影响版本**: 1.17.0、<= 1.16.1 - **修复版本**: 1.16.2 - **CVE ID**: CVE-2023-49297 - **CVSS v3评级**: 3.3/10 (低) - **安全等级**: 低 - **攻击向量**: 局部 - **攻击复杂度**: 低 - **所需权限**: 无 - **用户交互**: 需要 - **作用范围**: 无变化 - **机密性影响**: 低 - **完整性影响**: 无 - **可用性影响**: 无 - **弱点**: CWE-502 ### 核心代码问题 ```python from yaml import CLoader as Loader def LoadSettingsFile(filename=SETTINGS_FILE): ... try: with open(filename) as stream: data = load(stream, Loader=Loader) ... ``` **问题**: 使用了不安全的CLoader加载器,允许在YAML文件内嵌入的任意Python代码执行。 ### 证明概念(PoC) 1. 创建恶意的`settings.yaml`文件,插入任意代码。 2. 初始化GoogleAuth对象。 3. 在与恶意YAML文件相同的目录中执行代码,YAML文件内的代码会自动执行。 ### 影响 此反序列化攻击会影响任何初始化了GoogleAuth对象的用户,前提是存在恶意的YAML文件在同一目录中。由于该风险不需要直接通过代码加载文件,只要文件存在就会产生额外风险。