应禁用未加约束的高风险功能模块以防范越权、泄密与RCE风险:一、禁用WebUI界面;二、禁用PTY命令执行;三、禁用动态技能加载;四、禁用明文环境变量注入;五、禁用LiteLLM集成桥接。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果Hermes Agent中启用了未加约束的高风险功能模块,可能被利用执行越权命令、泄露凭证或触发远程代码执行,需通过主动裁剪移除不必要组件。以下是禁用不安全功能模块的具体操作步骤:
一、禁用WebUI界面模块
WebUI界面默认关闭,但若因调试需要临时启用,则会暴露HTTP服务端口,引入XSS、CSRF及未授权访问风险。彻底禁用可消除该攻击面。
1、检查配置文件environments/benchmarks/terminalbench_2/default.yaml中是否存在webui: true或http_server.enabled: true字段
2、将上述字段值全部设为false,或直接删除整行配置
3、确认Docker启动参数中未包含-p映射80/443/8080等常见Web端口
4、重启Agent后执行curl -I http://localhost:8080,应返回connection refused而非HTTP状态码
二、禁用PTY交互式命令执行模块
PTY模块允许Agent直接调用shell执行任意系统命令,是最高危入口。在非终端仿真场景下必须关闭,防止恶意Skills触发os.system()或subprocess.Popen()调用。
1、进入tools/environments/docker.py,定位pty_enabled = True所在行
2、将其修改为pty_enabled = False
3、检查skills/*/目录下所有.py与.sh文件,删除或注释含os.system(、subprocess.call(、subprocess.run(的调用语句
4、在Agent启动日志中验证无“PTY initialized”或“spawn shell session”类输出
三、禁用动态技能加载与社区源安装
动态加载机制允许运行时从网络拉取并执行未经签名的Skills代码,极易引入恶意逻辑。关闭该能力可强制所有Skills经预审后静态部署。
1、编辑hermes.conf,将skill_source_policy设为builtin_only
2、执行hermes skills list --source community,确认返回空列表
3、删除skills/community/目录及其全部子内容
4、验证skills/目录下仅存在builtin/与trusted/子目录,且其中每个skill.json均含valid_signature: true字段
四、禁用明文环境变量注入模块
部分旧版配置支持通过ENV_FILE或--env-file方式加载含密钥的明文文件,导致敏感信息驻留磁盘或内存。该模块应完全停用,改由Secrets管理器注入。
1、检查启动命令中是否含--env-file或--env-file=.*\.env字样,立即移除
2、搜索所有配置文件,删除形如env_file_path: "/etc/hermes/secrets.env"的字段
3、确认容器内不存在/etc/hermes/secrets.env或$HOME/.hermes.env文件
4、运行docker exec -it
五、禁用LiteLLM集成桥接模块
LiteLLM作为外部LLM网关组件,v1.82.9及更早版本存在反序列化与沙箱逃逸漏洞,且Hermes Agent对其响应不做校验。当前v0.5.0+已移除依赖,但旧部署仍可能残留。
1、执行pip list | grep litellm,若返回版本号则需卸载
2、运行pip uninstall litellm -y
3、检查tools/integrations/目录下是否存在litellm_bridge.py或llm_proxy.py文件,全部删除
4、验证hermes logs中不再出现“LiteLLM client initialized”或“forwarding to litellm”类日志条目











