CVE-2026-34937PraisonAI在1.5.90之前的版本中存在严重的安全漏洞。当`run_python()`函数处理用户输入时,由于转义逻辑不完善,未能过滤`$()`和反引号等Shell特殊字符。攻击者可利用此缺陷,在Python代码执行前注入并执行任意操作系统命令,从而完全控制受影响的系统。
该漏洞源于PraisonAI的`run_python()`函数使用了不安全的命令构造方式。它将用户控制的代码直接拼接到`python3 -c "<code>"`字符串中,并使用`subprocess.run(..., shell=True)`执行。尽管代码中存在针对反斜杠和双引号的转义处理,但这不足以防御Shell注入。攻击者可以利用Shell的命令替换特性(如`$(command)`或反引号`` `command` ``),在双引号字符串内插入恶意指令。由于设置了`shell=True`,操作系统Shell会先解析这些命令替换并执行,随后才调用Python解释器。这种机制允许攻击者在Python沙箱启动前就逃逸并执行任意系统命令,导致主机被完全控制。