| Título | NousResearch hermes-agent 9121834b31984c2125738c7243792cbd2dc79df6 (unreleased origin/main, post-v2026.6.5) Authentication Bypass by Spoofing (CWE-290) |
|---|
| Descrição | # Technical Details
An Authentication Bypass by Spoofing vulnerability exists in the SimpleX gateway authorization path in `hermes-agent/gateway/authz_mixin.py` of hermes-agent.
The application fails to distinguish between a stable authenticated SimpleX contact identifier and mutable display-name metadata. The gateway adds `source.user_name` to the identities checked against `SIMPLEX_ALLOWED_USERS`, while the adapter populates `user_name` from attacker-controlled `displayName`, so a colliding display name can satisfy the allowlist.
# Vulnerable Code
File: hermes-agent/gateway/authz_mixin.py
Method: gateway authorization check for SimpleX / check_ids.add(source.user_name)
Why: The code treats mutable `source.user_name` as an allowlist identity. In `plugins/platforms/simplex/adapter.py`, `user_name=sender_name or sender_id`, so attacker-controlled profile metadata reaches the authorization sink and can spoof an allowlisted identity.
# Reproduction
1. Download `verification_test.py`, `control-stable-id-only.py`, and `simplex_allowlist_harness.py` from the issue-linked gists.
2. From the repository root, run the verification PoC with the provided `PYTHONPATH` command from the issue.
3. Observe that a sender with `contactId='attacker-7'` and `displayName='alice'` is authorized when `SIMPLEX_ALLOWED_USERS=alice`, while the control case remains denied when only the stable non-matching ID is allowlisted.
# Impact
- An untrusted SimpleX contact can bypass sender authorization by choosing a colliding display name.
- Once authorized, the attacker can access downstream Hermes agent functionality, including conversation state, tool invocations, local actions, file access, and integrated external services exposed by the deployment. |
|---|
| Fonte | ⚠️ https://github.com/NousResearch/hermes-agent/issues/44730 |
|---|
| Utilizador | Erichen-x (UID 99082) |
|---|
| Submissão | 18/06/2026 03h40 (há 1 mês) |
|---|
| Moderação | 25/07/2026 12h42 (1 month later) |
|---|
| Estado | Aceite |
|---|
| Entrada VulDB | 383065 [NousResearch hermes-agent 2026.6.5 SimpleX Gateway Authorization adapter.py contactId Elevação de Privilégios] |
|---|
| Pontos | 20 |
|---|