Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSelf-register normal manager-api account
-
DeliveryObtain or enumerate victim device MAC
-
ExploitRequest /device/address-book/{mac} without ownership
-
ExecutionServer skips owner check
-
ImpactExfiltrate contact MACs, aliases, owner IDs
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Requires a valid authenticated manager-api account; the description states a normal or self-registered account suffices, so no administrative privilege is needed. The attacker must also know or enumerate another user's device MAC address to place in the /device/address-book/{macAddress} path. No special product configuration or user interaction is required, and the flaw is present in default deployments of versions before 0.9.8. The practical limiting factors are therefore the need for an account (PR:L) and knowledge of a target device MAC; impact is confined to reading address-book metadata (contact MACs, aliases, call permissions, owner user IDs) with no write or service-disruption capability. |
| Impact | This is a medium-severity information-disclosure flaw (IDOR/CWE-639), not a priority emergency. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N, 5.3) is internally consistent with the description: network-reachable, low attack complexity, but requiring an authenticated low-privilege account (PR:L) and yielding only low confidentiality impact with no integrity or availability impact. No EPSS score and no KEV listing were supplied, and the vuln.today Decision label is 'this_month' rather than act_now/emergency, so the aggregate signals point to a real but non-urgent issue to remediate on a normal patch cadence. The one amplifying factor is that exploitation is trivial once authenticated - and self-registration is explicitly in scope, lowering the practical bar for PR:L - but the exposed data (contact MACs, aliases, call permissions, owner user IDs) is limited PII rather than credentials or code execution. There is no genuine conflict among the signals; the main missing data points are EPSS probability and any independent exploitation telemetry. |
| Exploit ScenarioDerived | An attacker self-registers a normal account on a Xiaozhi-esp32-server manager-api instance, then calls /device/address-book/{macAddress} supplying the MAC address of a device belonging to another user. Because the pre-0.9.8 handler does not verify that the requesting user owns the device, the server returns that victim's address-book entries - contact MACs, aliases, call permissions, and owner user IDs. A public PoC reference (a HackMD write-up and VulnCheck advisory) exists but is not verified as working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 24, 2026
An insecure direct object reference in the manager-api of xiaozhi-esp32-server before 0.9.8 lets any authenticated account read other users' device address books by supplying a victim's device MAC to the /device/address-book/{macAddress} endpoint, disclosing contact MACs, aliases, call permissions and owning user IDs. The flaw requires only a normal or self-registered account plus knowledge of the target device MAC (CVSS v4.0 5.3, CVSS v3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N), and impact is confined to confidentiality with no write or denial-of-service capability. It is not in CISA KEV and no working exploit code has been confirmed; a public technical writeup of the flaw exists, and the vendor has released a fix in v0.9.8.
RemediationAI
Upgrade to xiaozhi-esp32-server 0.9.8 or later, which is the vendor-released patch listed in the GitHub release https://github.com/xinnan-tech/xiaozhi-esp32-server/releases/tag/v0.9.8; the fix is carried by PR https://github.com/xinnan-tech/xiaozhi-esp32-server/pull/3460 and commit d4ff9c5c17cbd82ec98a2a6bb4f82a07c1be0f03, which add DeviceService.getOwnedDeviceByMacAddress and enforce an ownership check on the affected handlers so a device not belonging to the caller returns DEVICE_NOT_EXIST. Note that because the same PR also changes address-book alias handling and MAC normalization, validation of legitimate call/nickname behaviour after upgrade is advisable. If upgrading cannot be scheduled immediately, the interim control supported by the evidence is to restrict reachability of the manager-api /device/address-book/{macAddress} route (for example by limiting it at a reverse proxy to trusted clients), with the trade-off that legitimate address-book browsing from untrusted networks stops working until the patch is applied; the vendor's complete fix for the missing authorization check is the upgrade itself.
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
xiaozhi-esp32-server is an ESP32-based voice assistant backend whose manager-api is a Java/Spring service with a MyBatis persistence layer. In versions before 0.9.8 the DeviceController.getAddressBook handler (DeviceController.java lines 173-178 in the v0.9.7 tag) and the underlying DeviceAddressBookDao.xml query (lines 5-10) look up an address book purely by the macAddress path variable, with no check that the requested device belongs to the authenticated principal. This is CWE-639 (authorization bypass through a user-controlled key): the resource identifier is taken from the request and used directly as the query key, so authentication is enforced but object-level authorization is not. The upstream fix in PR #3460 introduces DeviceService.getOwnedDeviceByMacAddress(macAddress), a helper that returns null when the device does not exist or is not owned by the current user, and applies that ownership check across the affected handlers instead of manually comparing callerDevice.getUserId() against the logged-in user. The same PR also reworks address-book alias handling and MAC key normalization, so the patch touches more than the single reported endpoint. The trigger for the missing check in the shipped vulnerable code is precisely the absent ownership comparison; the sources do not describe any additional race, timing or memory-safety component.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable endpoint with low complexity but requires a low-privilege authenticated account (PR:L); only limited address-book data is disclosed, so C:L and I:N/A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Xiaozhi-esp32-server before 0.9.8 contains an insecure direct object reference vulnerability in the manager-api DeviceController.getAddressBook handler that allows authenticated users to read other users' device address books. Attackers with a normal or self-registered account can request /device/address-book/{macAddress} with another user's device MAC to obtain contact MACs, aliases, call permissions, and owner user IDs.
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.
EUVD-2026-109275
GHSA-2hv3-q586-pf3c
NVD
CVE.org
EPSS
Exploit-DB