Skip to main content

Stoat Chat CVE-2026-100674

| EUVDEUVD-2026-87768 MEDIUM
Incorrect Behavior Order: Validate Before Canonicalize (CWE-180)
2026-09-26 VulnCheck GHSA-j26j-r3xm-q4wf
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain low-privilege account
  2. Delivery
    Submit username with crafted Unicode letters
  3. Exploit
    Bypass allowlist and length validation
  4. Execution
    Unicode sanitization yields forbidden/reserved name
  5. Impact
    Impersonate 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

stoatchat 0 <0.15.5

Affected Packages

euvd stoatchat fix: 0.15.5

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

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
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
vuln.today AI 4.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Sep 26, 2026 - 14:02 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Low
niche open-source chat application, no broad enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-63306 CRITICAL
9.2 Jul 16

Server-side request forgery in stoatchat before 0.13.5 allows remote unauthenticated attackers to coerce the server into

CVE-2026-100676 HIGH
8.8 Sep 26

Unauthenticated remote attackers can use the January media proxy/embed service in stoatchat before 0.15.5 to probe the h

CVE-2025-71377 HIGH
8.7 Jul 16

Denial of service in stoatchat (delta) versions before 20250210-1 (0.8.2) lets a remote unauthenticated attacker exhaust

CVE-2026-73057 HIGH
8.7 Aug 16

Memory exhaustion denial of service in stoatchat before 0.15.0 allows unauthenticated remote attackers to crash the serv

CVE-2026-74869 HIGH
8.3 Aug 17

Missing authorization in stoatchat's Subscribe message handler exposes private server membership data to any authenticat

CVE-2026-100678 HIGH
8.3 Sep 26

MFA enforcement in Stoatchat before 0.15.5 can be bypassed by an attacker who already holds the victim's password, becau

CVE-2026-63088 HIGH
7.7 Jul 16

Server-side request forgery in Stoatchat before 0.14.0 lets unauthenticated, network-accessible attackers reach internal

CVE-2025-71388 HIGH
7.6 Jul 16

Webhook token disclosure in stoatchat (the Rust 'delta' backend of the Revolt/stoatchat platform) lets any channel membe

CVE-2026-100679 HIGH
7.1 Sep 26

MFA bypass in StoatChat before 0.15.5 allows an authenticated attacker to satisfy the MFA step-up re-authentication chal

CVE-2026-100675 HIGH
7.1 Sep 26

Authenticated members of a Stoat Chat deployment can permanently (until restart) disable push notifications and mention

CVE-2026-73059 HIGH
7.1 Aug 16

Permission bypass in stoatchat before 0.15.0 allows authenticated users holding only ViewChannel access to read individu

CVE-2026-100677 MEDIUM
6.9 Sep 26

Stoatchat releases prior to 0.15.5 hand unauthenticated remote attackers an account-existence oracle: POST /api/auth/ses

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy