Skip to main content

xiaozhi-esp32-server EUVDEUVD-2026-114108

| CVE-2026-119703 MEDIUM
Authentication Bypass by Spoofing (CWE-290)
2026-10-30 VulnCheck GHSA-wv6h-fhj6-j53g
6.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Reach WebSocket endpoint over network
  2. Delivery
    Spoof Device-ID header with allowlisted MAC
  3. Exploit
    Bypass Bearer HMAC token verification
  4. Execution
    Open authenticated WebSocket session
  5. Impact
    Issue voice commands and read conversation context

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Anti-spoofing controls
MITRE ATT&CK

1 technique across 1 tactic: Defense Evasion

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the server's WebSocket authentication is enabled with an allowlist (allowed_devices) configured, and that the attacker supplies a Device-ID header whose value matches a MAC-address-shaped identifier present on that allowlist - the vulnerable _handle_auth path lets allowlisted device IDs skip Bearer HMAC token verification entirely. The practical limiting factor, reflected in CVSS AC:H/AT:P, is that the attacker must know or correctly supply a valid allowlisted MAC-shaped value; MAC addresses can be guessable or discoverable but a matching allowlisted entry is still required. No prior authentication and no user interaction are needed (PR:N/UI:N), and the endpoint must be network-reachable (AV:N). The trigger beyond the spoofed Device-ID header and allowlist match is not further detailed in the available sources.

Impact

This is a genuine but moderate-priority issue, not a top-of-queue emergency. The CVSS 4.0 base score is 6.3 (Medium) with vector AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N: network-reachable and unauthenticated (PR:N), but tempered by high attack complexity (AC:H) and a present attack requirement (AT:P) - the attacker must supply a device identifier that matches an entry on the server's allowlist, and impact is only Low to confidentiality and integrity with no availability impact. On the real-world exploitation signals the picture is quiet: the input does not list an EPSS score, there is no CISA KEV listing (so not confirmed actively exploited), and no public exploit is identified (the vendor PR ships a regression-test harness, not weaponized exploit code). The vuln.today decision label is 'this_month', consistent with a signal set that is real and patch-available but lacks evidence of active or automatable mass exploitation. The SSVC-style read aligns: exploitation is not confirmed in the wild, it is not trivially automatable (a valid allowlisted MAC must be known), and technical impact is partial rather than total. Note explicitly: no EPSS value was provided, so widespread-exploitation probability could not be weighed, and the 'Microsoft' vendor tag in the input is incorrect for this independent open-source project (see data_quality_flags).

Exploit ScenarioDerived

A remote attacker who can reach the server's WebSocket endpoint opens a connection carrying a Device-ID header shaped like - and matching - an allowlisted MAC address, which causes WebSocketServer._handle_auth to skip Bearer HMAC token verification. The attacker thereby opens an authenticated voice-assistant session, issues voice commands, exchanges audio, and reads the target device's conversation context. No public exploit code is identified in the provided data (the vendor PR includes a regression test, not an exploit); the CVSS high complexity reflects the need to know a valid allowlisted MAC-shaped identifier.

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

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

Alert me

AnalysisAIv1 – Oct 30, 2026

An authentication bypass in xiaozhi-esp32-server through 0.9.8 lets remote, unauthenticated clients open an authenticated WebSocket session against the voice-assistant backend by supplying a Device-ID header whose value mimics an allowlisted MAC address, because WebSocketServer._handle_auth lets allowlisted identifiers skip Bearer HMAC token verification entirely. A successful attacker can issue voice-assistant commands, exchange audio and read that device's conversation context, though confidentiality and integrity impact is capped by the need to know or correctly guess an allowlisted MAC-shaped value (assessed CVSS 6.3, AC:H/AT:P, PR:N/UI:N). No KEV entry or confirmed active exploitation exists at time of analysis; this is a moderate-priority, this_month item, and the vendor has published an upstream fix in pull request 3457 alongside a public issue report and a regression test script that demonstrates the bypass path.

RemediationAI

Apply the upstream fix in pull request https://github.com/xinnan-tech/xiaozhi-esp32-server/pull/3457 (tracked by issue 3448): upstream fix available (PR/commit); a released patched version number is not independently confirmed in the available data, and the advisory lists 0.9.8 as the last affected release, so rebuild from the fixed commit or a release containing it rather than trusting the version string alone. Since exploitation requires an allowlisted MAC-shaped Device-ID, interim compensating controls are to keep allowed_devices empty or limited to identifiers that cannot be guessed or observed on the wire until the fix is deployed, and to restrict network reachability of the WebSocket listener to the device/segment networks that legitimately host ESP32 clients; the trade-off is that removing allowlist entries or narrowing reachability will lock out legitimate devices that rely on the allowlist path, so pair either change with a staged rollout of the patched server. Note that the same fix also removes a hardcoded vision web_test_client backdoor and gates OTA token issuance and firmware download, so partial cherry-picking of only the _handle_auth change leaves other bypass routes noted in the issue open.

Affected VersionsENISA

xiaozhi-esp32-server 0 ≤0.9.8

Affected Packages

euvd xiaozhi_esp32_server no fix

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 affected component is the Python WebSocket gateway (main/xiaozhi-server/core/websocket_server.py, roughly lines 211-232 in the 0.9.8 tree) of the xiaozhi-esp32-server IoT/voice-assistant backend, which authenticates ESP32 device clients using a Bearer HMAC token derived from the server's auth_key plus per-device identity headers. The flaw is CWE-290 (Authentication Bypass by Spoofing): the allowlist branch of _handle_auth trusted the client-supplied Device-ID header alone, so a device identifier on the configured allowed_devices list was treated as authenticated without any token comparison. Because headers are fully attacker-controlled during the WebSocket handshake, the allowlist check degenerated into an identity assertion rather than a credential check. The upstream fix reworks this model: the allowlist now only extends credential lifetime while the token is still verified, credentials move to a subprotocol header (URL query strings are no longer trusted), Device-Id and Device-Model values are format/character-set validated, OTA token issuance and firmware download are gated, a hardcoded vision web_test_client backdoor is removed, and MQTT issuance is brought under the auth_enable gate.

Know when Xiaozhi Esp32 Server 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 6.3 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.8 MEDIUM

Unauthenticated network WebSocket bypass (AV:N/PR:N/UI:N) but requires a valid allowlisted MAC-shaped Device-ID (AC:H); reading context and issuing commands give C:L/I:L, no availability impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

xiaozhi-esp32-server through 0.9.8 contains an authentication bypass vulnerability in WebSocketServer._handle_auth that allows remote unauthenticated attackers to skip Bearer HMAC token verification by spoofing the Device-ID header. Attackers supplying an allowlisted MAC-address-shaped device identifier can open an authenticated WebSocket session, issue voice-assistant commands, exchange audio, and read that device's conversation context.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Low
open-source self-hosted ESP32 voice-assistant server, hobbyist/DIY IoT footprint
Data Quality
4 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.3%
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
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.

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