CVE-2026-33139PySpector是一个用于Python开发的SAST框架。在0.1.6及更早版本中,其插件系统存在安全验证绕过漏洞。由于`resolve_name`函数无法处理`getattr`等间接调用,导致恶意插件可绕过AST静态检查,最终在用户机器上执行任意系统命令。
该漏洞源于PySpector插件系统中的安全验证机制存在逻辑缺陷。`validate_plugin_code()`函数旨在通过AST(抽象语法树)静态分析拦截插件中的危险API调用。然而,其内部辅助函数`resolve_name()`仅能处理`ast.Name`和`ast.Attribute`节点,对其他类型返回`None`。当攻击者构造使用`getattr()`(如`getattr(os, 'system')`)进行间接函数调用的恶意插件时,外部调用节点的`func`属性为`ast.Call`类型。这导致`resolve_name()`无法解析,使安全检查被静默跳过。恶意插件因此能绕过信任验证,在加载时执行任意系统命令,完全控制用户环境。