☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Hermes WebUI logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.1 🐛 CWE-862
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-49956

CVE-2026-49956 Improper Access Control in Hermes
📅 PUBLISHED: 2026-06-09 17:17 UTC 🔄 UPDATED: 2026-09-23 20:23 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.27%
👁️
0.27% probability
6.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1548
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Brazil License: Open Source
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-49956 is a profile isolation bypass vulnerability in Hermes WebUI versions before 0.51.269. The flaw allows authenticated users to access session data (titles and transcript messages) belonging to other profiles by querying the session search endpoint without proper active-profile filtering. This is a classic Improper Access Control (CWE-284) issue, where the application fails to enforce that a user can only search within their own profile’s sessions. The CVSS score of 6.5 (Medium) reflects the need for authentication but the high confidentiality impact. No public exploit code or proof-of-concept is available, and the patch status remains unknown.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Hermes WebUI is a self-hosted web application. No NPM, PyPI, Go, or Ruby packages are directly associated with this CVE. However, organizations using containerized deployments should verify the integrity of their Hermes images and ensure they are not running a vulnerable version.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
  • Base Score: 6.5 (Medium)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: Low (PR:L) – attacker must be authenticated
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: High (C:H) – session titles and transcripts exposed
  • Integrity Impact: None (I:N)
  • Availability Impact: None (A:N)

Threat Level: Medium. The vulnerability requires authentication, but once authenticated, an attacker can easily pivot to access other users’ sensitive session data. This is especially dangerous in multi-tenant environments or shared Hermes instances.

Deep Dive & Mechanics

The vulnerability resides in the session search endpoint. In a properly isolated system, when a user performs a search for sessions, the backend should filter results to only include sessions belonging to that user’s active profile. However, in Hermes WebUI before version 0.51.269, the search handler does not enforce this filter. Instead, it queries the entire session database and returns results without checking the profile_id or equivalent field.

Attack Flow:

  1. Attacker authenticates to Hermes WebUI (e.g., with low-privilege credentials).
  2. Attacker sends a crafted request to the session search endpoint (e.g., POST /api/sessions/search or GET /sessions?q=...).
  3. The server returns session titles and transcript messages from all profiles, not just the attacker’s own.
  4. Attacker can iterate through results to exfiltrate sensitive data.

Root Cause: Missing authorization check in the search handler. The code likely uses a query like SELECT * FROM sessions WHERE title LIKE '%search_term%' without appending AND profile_id = current_user_profile_id.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

# Vulnerable search handler
def search_sessions(search_term):
    query = "SELECT id, title, transcript FROM sessions WHERE title LIKE ?"
    results = db.execute(query, ('%' + search_term + '%',))
    return results

Patched Code (Conceptual):

# Patched search handler
def search_sessions(search_term, user_profile_id):
    query = "SELECT id, title, transcript FROM sessions WHERE title LIKE ? AND profile_id = ?"
    results = db.execute(query, ('%' + search_term + '%', user_profile_id))
    return results

The patch adds a profile_id filter to the SQL query, ensuring that only sessions belonging to the authenticated user’s profile are returned.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Valid credentials for a Hermes WebUI instance (version < 0.51.269).
  • Network access to the Hermes WebUI endpoint.

Exploitation Steps:

  1. Log in to Hermes WebUI and obtain a session token.
  2. Send a request to the session search endpoint with a broad search term (e.g., empty string or wildcard).
  3. Parse the JSON response to extract session titles and transcripts from other profiles.

Example Request (using curl):

curl -X POST "https://target-hermes/api/sessions/search" \
  -H "Authorization: Bearer <your_token>" \
  -H "Content-Type: application/json" \
  -d '{"search_term": ""}'

Expected Response (truncated):

{
  "sessions": [
    {"id": 1, "title": "Admin Meeting", "transcript": "Discussed credentials..."},
    {"id": 2, "title": "User Support", "transcript": "Password reset for user X..."}
  ]
}

Blue Team (Detection & Hardening)

Detection:

  • Monitor for anomalous search requests that return a large number of sessions or sessions from unexpected profiles.
  • Look for repeated search queries with empty or very broad search terms from a single user.

Hardening:

  • Immediately upgrade to Hermes WebUI version 0.51.269 or later.
  • If patching is not possible, implement a Web Application Firewall (WAF) rule to block requests to the session search endpoint that do not include a valid profile identifier.
  • Enforce strict access controls at the API gateway level.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Repeated POST /api/sessions/search requests with empty or wildcard search terms.
    • Unusually large response sizes from the session search endpoint.
  • Log IOCs:
    • Log entries showing a single user querying sessions from multiple profiles.
    • Database queries that lack a profile_id filter in the WHERE clause.
  • File IOCs:
    • No specific file-based IOCs.

Detection Engineering

YARA Rule

rule CVE_2026_49956_Hermes_Profile_Isolation_Bypass {
    meta:
        description = "Detects attempts to exploit CVE-2026-49956 by searching for session data without profile filtering"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2026-49956"
    strings:
        $search_endpoint = "/api/sessions/search"
        $broad_search = "search_term\": \"\""
        $wildcard_search = "search_term\": \"%\""
    condition:
        any of ($search_endpoint) and any of ($broad_search, $wildcard_search)
}

Sigma Rule

title: Hermes WebUI Profile Isolation Bypass Attempt
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects attempts to exploit CVE-2026-49956 by searching for session data without profile filtering
author: Valters IT
date: 2025-04-10
logsource:
    category: web
    product: hermes_webui
detection:
    selection:
        http.method: POST
        http.url: "/api/sessions/search"
        http.body|contains: "search_term"
    condition: selection
falsepositives:
    - Legitimate broad searches by administrators
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2026-49956 Hermes WebUI Profile Isolation Bypass Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/api/sessions/search"; http_uri;
    content:"search_term"; http_client_body;
    sid:1000001;
    rev:1;
    reference:cve,2026-49956;
    classtype:attempted-recon;
    priority:2;
)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Update Hermes WebUI to version 0.51.269 or later as soon as a patch is released.
  2. Workaround: If patching is delayed, restrict access to the session search endpoint using a reverse proxy or WAF. Only allow requests from trusted IPs or with specific headers.
  3. Audit: Review access logs for any signs of exploitation.

Long-Term Measures:

  • Implement proper authorization checks in all API endpoints.
  • Conduct regular security code reviews focusing on access control.
  • Use automated tools to scan for similar vulnerabilities.

Valters IT Signature This report was generated by Valters IT Cyber Threat Intelligence Division. For questions, contact threatintel@valtersit.com.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-49956/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.