Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain low-privilege account
-
DeliverySubmit username with crafted Unicode letters
-
ExploitBypass allowlist and length validation
-
ExecutionUnicode sanitization yields forbidden/reserved name
-
ImpactImpersonate reserved identity or corrupt storage
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Leading special element handling
|
| Exploitation Conditions | Requires an authenticated actor able to submit or change a username (PR:L) - specifically the account creation or username-update flow of stoatchat before 0.15.5. Exploitation depends on the server accepting Unicode input in usernames and performing Unicode sanitization/normalization AFTER the character-allowlist and 32-character length checks rather than re-validating afterward. No user interaction by a victim is needed to create the malformed username. Impact is limited to integrity of the username namespace (reserved-name lookalikes, embedded special characters, over-length storage values); there is no confidentiality or availability impact and no privilege elevation beyond identity spoofing. |
| Impact | This is a genuine but modest-severity issue. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N, base 5.3 Medium) tells a consistent story: network-reachable, low complexity, but requires at least low privileges (PR:L - an account able to submit a username) and yields only limited integrity impact with zero confidentiality or availability impact. That aligns well with the CWE-180 root cause (validate-before-canonicalize): forbidden characters are re-introduced only after the allowlist check passes, so the outcome is identity/username spoofing and storage-limit evasion, not code execution or data theft. No EPSS score, no CISA KEV listing, and no public POC were provided, so exploitation is not confirmed in the wild and appears low-urgency. The KEV/EPSS absence is not itself a defect - but combined with a niche product and integrity-only impact, this is a low-to-medium real-world priority rather than a high-CVSS false alarm. One caveat: the input Tag labels this 'Authentication Bypass,' which overstates the impact - the vector shows VI:L only and no authentication or authorization boundary is actually crossed; it is an input-validation/spoofing bypass. Verify the exact abuse surface (e.g., whether reserved-name lookalikes enable impersonation of admins) with the vendor advisory. |
| Exploit ScenarioDerived | An attacker who can register or rename an account submits a username containing Unicode letters that pass the allowlist and length checks, then normalize into forbidden characters or a reserved-name lookalike (e.g., an admin or system name). Because validation runs before Unicode sanitization, the transformed value is stored, letting the attacker impersonate reserved identities, inject special characters, or exceed the 32-character storage limit. No public exploit code was identified at time of analysis, but the technique is straightforward for any authenticated user. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 26, 2026
Username validation bypass in stoatchat (Stoat) before 0.15.5 lets an authenticated user register or change a username that fails the intended character allowlist and 32-character length limit, because the sanitization/normalization step runs after validation instead of being re-checked. Exploitation requires a valid account and access to the account-creation or username-update flow (CVSS 4.0 vector shows PR:L, and our independent assessment scores it CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N), so only the integrity of the username namespace is impacted - no confidentiality or availability loss and no privilege escalation. A vendor patch is available in 0.15.5, and no public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
Vendor-released patch: 0.15.5 - upgrade stoatchat to 0.15.5 or later, which revalidates usernames after Unicode sanitization, per GHSA-qcwh-c934-wrv5 and the VulnCheck advisory. Because exploitation requires an authenticated account, the highest-value compensating control (if immediate upgrade is not possible) is to temporarily disable self-service username changes and, where feasible, gate account registration or invite creation to trusted administrators, trading off user onboarding convenience for a reduced attack surface. Operators who cannot patch should also add an application-layer or reverse-proxy filter that rejects usernames containing non-ASCII or confusable characters and enforce the 32-character limit on the normalized form, though this risks legitimate internationalized usernames being blocked and does not fix the underlying ordering flaw. Once 0.15.5 is deployed, audit existing usernames for over-length or lookalike/reserved-name entries and rename or remove any malformed accounts, since previously created values are stored as-is and are not retroactively repaired by the patch.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause class is CWE-180 (Incorrect Behavior Order: Validate Before Canonicalize). Stoat applies Unicode sanitization/normalization to submitted usernames, but the character allowlist and length checks (a 32-character storage limit) are performed before normalization. Certain Unicode letters normalize or transform into characters that the allowlist would otherwise reject, so the post-sanitization result is never revalidated. This allows the creation of reserved-name lookalikes via confusable/homoglyph characters, embedding of special characters that were supposed to be forbidden, and storage values exceeding the 32-character cap. The vulnerability lives in the username-handling logic of the stoatchat server component (CPE cpe:2.3:a:stoatchat:stoatchat:*:*:*:*:*:*:*:*), tracking the same codebase as the Stoat chat platform, and is also recorded as ENISA EUVD-2026-87768. The issue is a classic ordering flaw rather than a memory-safety or injection bug: fix requires normalizing first, then validating and length-checking the normalized form.
Know when Stoatchat gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable username submission by a low-privileged account (PR:L), low complexity, integrity-only impact from spoofed/malformed usernames; no confidentiality or availability effect and no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
stoatchat before 0.15.5 fails to revalidate usernames after Unicode sanitization, allowing attackers to create usernames with forbidden characters by submitting Unicode letters that transform into rejected characters. Attackers can bypass character allowlists and length limits to create reserved-name lookalikes, embed special characters, and exceed the 32-character storage limit.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Server-side request forgery in stoatchat before 0.13.5 allows remote unauthenticated attackers to coerce the server into
Unauthenticated remote attackers can use the January media proxy/embed service in stoatchat before 0.15.5 to probe the h
Denial of service in stoatchat (delta) versions before 20250210-1 (0.8.2) lets a remote unauthenticated attacker exhaust
Memory exhaustion denial of service in stoatchat before 0.15.0 allows unauthenticated remote attackers to crash the serv
Missing authorization in stoatchat's Subscribe message handler exposes private server membership data to any authenticat
MFA enforcement in Stoatchat before 0.15.5 can be bypassed by an attacker who already holds the victim's password, becau
Server-side request forgery in Stoatchat before 0.14.0 lets unauthenticated, network-accessible attackers reach internal
Webhook token disclosure in stoatchat (the Rust 'delta' backend of the Revolt/stoatchat platform) lets any channel membe
MFA bypass in StoatChat before 0.15.5 allows an authenticated attacker to satisfy the MFA step-up re-authentication chal
Authenticated members of a Stoat Chat deployment can permanently (until restart) disable push notifications and mention
Permission bypass in stoatchat before 0.15.0 allows authenticated users holding only ViewChannel access to read individu
Stoatchat releases prior to 0.15.5 hand unauthenticated remote attackers an account-existence oracle: POST /api/auth/ses
EUVD-2026-87768
GHSA-j26j-r3xm-q4wf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB