Hermes v0.18.0 更新:12 天 1760 个 commit,这次安全修复最狠

Hermes Agent v0.18.0 (2026.7.1) 全面解读:Gateway IDOR 修复、浏览器私有网络防护增强、子进程凭证清理、Google Vertex AI 支持、MoA 稳定性大修等核心更新。

v0.18.0,代号没有,但安全修复密度史无前例。 12 天,1760 个 commit,其中安全相关提交超过 60 个。 这是 Hermes 有史以来安全修复最密集的一次更新。

先说结论

这次更新的核心主题只有一个:安全加固

Gateway 会话劫持漏洞堵了,浏览器私有网络访问锁死了,子进程环境变量凭证泄漏补了。

功能上最大的亮点是 Google Vertex AI 支持——Gemini 用户终于可以原生接入了。

稳定性方面,MoA(Model of Agents)和上下文压缩各修了一堆关键 bug。

一句话判断:如果你用了 Gateway 远程连接或多账号场景,必须升。

全景统计:fix 占近六成,进入打磨期

类型数量占比说明
fix103358.7%修复为主
feat20911.9%新功能
test1418.0%测试补充
chore1166.6%工程维护
docs915.2%文档更新
refactor784.4%代码重构
security150.9%安全专用
其他774.4%ci/other

fix:feat ≈ 5:1,典型的打磨期比例。

fix 排名前五的方向:gateway(134)、desktop(90)、agent(71)、security(47)、telegram(39)。

结论:Gateway 和安全是这次改动最集中的两个方向。

下面逐个拆解重点更新。

一、安全加固(本次绝对主角)

1. Gateway /resume IDOR 修复:堵住会话劫持

这是本次最严重的安全修复。

漏洞原理:

Gateway 的 /resume/sessions 接口,之前没有严格绑定调用者身份。

也就是说,理论上有人可以构造请求,读取或恢复不属于自己的会话。

这是一种 IDOR(Insecure Direct Object Reference)漏洞。

修复内容(7 个连环提交):

提交修复点
scope /resume to caller’s origin核心修复:严格绑定调用者来源
fail closed on blank-source空来源行直接拒绝
fail closed on no-provenance无来源信息直接拒绝
fail closed on identity-less无身份调用者直接拒绝
scope Matrix by threadMatrix 按 thread 隔离,不只是 room
tighten DM scoping收紧私信范围
allow shared-group resume合法共享组恢复正常

设计原则:所有无法验证来源的请求,一律 fail closed(拒绝),而不是放行。

commit: c4f278c02

2. 浏览器私有网络防护增强:CDP 不再豁免

之前的浏览器安全防护有个漏洞:cloud-metadata 地址拦截只对本地 backend 生效。

问题场景:

如果你的 Agent 跑在云服务器上,用本地 headless Chromium,它可以导航到 169.254.169.254(云元数据地址),读取实例凭证。

而且 CDP(Chrome DevTools Protocol)远程浏览器被错误地判定为"本地",跳过了私有网络检查。

修复内容(3 个提交):

提交修复
enforce cloud-metadata floor on all backends所有 backend 强制拦截云元数据地址
re-check after browser_back导航后退后重新检查私有网络
extend guard to browser_consolebrowser_console 也纳入检查

云元数据拦截地址: 169.254.169.254metadata.google.internal、ECS/Azure/GCP IMDS——全部无条件拦截。

commit: 0a7561651

3. 子进程凭证清理:堵住环境变量泄漏

之前 Hermes 的动态密钥会泄漏到所有子进程的环境变量中。

问题: Agent 启动的子进程(如 terminal 命令、脚本)可以读取到 Hermes 自身的会话密钥和凭证。

修复(3 个连环提交):

提交修复
strip dynamic Hermes secrets核心修复:spawn 时清除所有动态密钥
close cross-session leak修复跨会话 HERMES_SESSION_* 泄漏
close same session leak修复同一会话的 spawn surface 泄漏

清除的凭证类型: 会话令牌、动态密钥等 Hermes 内部凭证。

commit: a658f3b28,2026-07-01

4. 其他安全修复

修复说明
portal_base_url 校验防止伪造 Portal 地址
pairing 同步 allowlistpairing 权限不再绕过 allowlist
path traversal 防护Teams 录音文件名清除目录组件
browser credential denylist收窄凭证查询拦截名单

二、新功能

1. Google Vertex AI Provider:Gemini 原生接入

新增 Google Vertex AI 作为 Provider,通过 OAuth2 认证。

支持内容:

项目说明
模型Gemini 系列
认证OAuth2
配置入口桌面端 Keys tab 可直接配置
原生适配合并同角色内容、移除 stream_options

实际意义: 之前用 Gemini 要走第三方 API 中转,现在直接 OAuth2 认证,延迟更低,成本更可控。

commit: c73e74386,2026-07-01

2. Kanban 通知路由优化

通知不再盲目广播,而是通过 owning profile 精准路由。

改动:

  • 通知通过任务所属的 profile 路由
  • 路由到 profile 后,唤醒创建该任务的 agent
  • 支持多语言通知消息

实际意义: 多 profile 场景下,通知不再串台。A profile 的任务完成通知,只发给 A profile 绑定的渠道。

commit: c69643026

3. 子代理工具集自动继承

之前 delegate_task 需要手动指定子代理的 toolsets 参数。

现在移除了这个参数——子代理自动继承父代理的完整工具集。

变化:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 之前(需要手动指定)
delegate_task(
    goal="...",
    toolsets=["terminal", "file", "web"]
)

# 现在(自动继承,不需要指定)
delegate_task(
    goal="..."
)

少了一个容易出错的参数。子代理默认拥有和父代理相同的能力范围。

commit: ba0bc01d1,2026-07-01

三、稳定性修复

1. MoA(Model of Agents)大修

这次 MoA 修了至少 10 个 bug,核心三个:

问题修复影响
辅助超时太短提升至 900s,Codex 路径获得稳定 provider长推理不再中途超时
预设选择丢失持久化预设选择不再每次都重置
成本计算虚高按 aggregator 真实模型计价会话成本不再被 advisor 拉高

之前的问题: MoA 的 aggregator 轮次被按 advisor(辅助模型)计价,导致会话成本显示虚高。而且 Codex 路径缺少稳定的 prompt_cache_key,导致缓存命中率低、延迟高。

修复后: 成本按真实模型计算,Codex 路径有稳定缓存键,900s 超时兜底长推理。

commit: eae3700b1aa605b66c9be292f1e

2. 上下文压缩修复

问题修复
压缩期间中断请求丢失中断请求排队,不再丢弃
merge-into-tail 摘要越界检测并截断分隔符后的内容
END MARKER 位置错误END MARKER 放在摘要末尾

之前的问题: 压缩过程中如果有新消息进来,会直接丢失。而且 merge-into-tail 模式的摘要有时会越过分隔符,污染后续内容。

commit: 5eaccf580b795a45b8a1a8a967e

3. Windows 平台修复

问题修复
terminal 路径错误init_session 的 cd 走 Windows 路径转换
bash 选择错误优先使用 Git for Windows bash
破坏性命令检测新增 Windows 破坏性 shell 命令检测

实际意义: Windows 用户之前可能遇到 terminal 工作目录不对、bash 版本选错等问题,这次都修了。

commit: 5d613a563ad5f3341d

4. Gateway 稳定性

问题修复
/restart 失效Restart=on-failure 模式下正确恢复
pairing 权限不一致pairing 同步到 allowlist
Telegram 连接超时每次 initialize() 加 30s 超时兜底

Telegram 超时修复细节: 之前如果 telegram.org 和所有备用 IP 都不可达,initialize() 没有外层超时限制,会阻塞数分钟导致 Gateway 卡死。现在每次尝试限制 30s,失败后重试退避。

commit: 40dbfa0e31bfe081459f0309504

升级建议

1
2
3
4
5
# 查看当前版本
hermes --version

# 升级到最新
hermes update

按使用场景分级建议:

场景紧迫度原因
Gateway 远程连接必须升IDOR 漏洞修复
多账号 / 多 profile必须升会话隔离加固
浏览器工具在云服务器必须升云元数据拦截
MoA 用户强烈建议超时/成本/缓存全修
Windows 用户强烈建议terminal 路径修复
单机纯 CLI建议升稳定性提升

写在最后

这次更新让我印象深刻的是安全修复的密度。

7 个连环提交堵一个 IDOR 漏洞,3 个提交锁死云元数据访问,3 个提交清理子进程凭证——

每一个都是真实可被利用的攻击面。

fix 占比 58.7% 不是坏事。 一个 AI Agent 框架在快速迭代后进入安全打磨期,说明项目在认真对待生产环境可靠性。

如果你在用 Gateway 或多账号,这次更新不要跳过。

关注 varkm,一起学习,一起成长