Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as any low-privileged user
-
ExploitEnumerate global auto-increment external_subscription_id
-
ExecutionRequest /api/user/proxy-provider-configs per ID
-
ImpactRead other users' configs and upstream request headers
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 account on the Miaomiaowu instance (any low-privileged user; PR:L), and exploitation targets the /api/user/proxy-provider-configs endpoint by supplying external_subscription_id values the attacker does not own. The decisive condition is that this ID is a GLOBAL auto-increment value shared across all users, so an attacker simply iterates integers to enumerate every subscription; no victim interaction, no non-default configuration, and no admin rights are needed. Limiting factors: the attacker must already be authenticated, exploitation is confined to multi-user/shared deployments (a single-user instance has nothing to cross-read), and impact is read-only disclosure of proxy-provider config fields (override scripts, filter rules, custom request headers, health-check URLs) with no write or service-disruption capability. |
| Impact | This is a moderate-severity, authenticated information-disclosure flaw (CWE-639 IDOR) rather than a critical or widely-weaponized issue. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N, score 5.3) is internally consistent with the description: network-reachable, low attack complexity, but requiring a valid low-privileged account (PR:L) and yielding only confidentiality impact (VC:L) with no integrity or availability effect. The vuln.today decision label is 'this_month' (not act_now/emergency), which aligns with the moderate score. It is not in CISA KEV, and no EPSS probability was provided in the input, so exploitation-likelihood cannot be quantified from the data; a public write-up reference (hackmd) exists but is not verified as working exploit code. One signal the raw CVSS understates: the disclosed data includes custom upstream request headers - the vendor's own regression test populates these with an 'Authorization' secret - so the practical confidentiality impact may exceed VC:L if those headers carry upstream credentials, a factor defenders should weigh above the numeric score. The 'Authentication Bypass' tag is misleading: this is cross-user authorization bypass among already-authenticated users, not an authentication bypass. Overall this is a real but second-tier priority: patch within the normal cycle, prioritized higher only where the stored headers contain sensitive upstream tokens. |
| Exploit ScenarioDerived | A logged-in user of a shared Miaomiaowu instance calls GET /api/user/proxy-provider-configs supplying external_subscription_id values they do not own, incrementing through the global auto-increment ID space. Because the storage query filtered only by subscription ID and not by username (confirmed in the patch diff), the server returns other users' proxy-provider configurations - override scripts, filter rules, health-check URLs and custom request headers. A public write-up reference describing the issue exists, but it 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 30, 2026
Cross-user information disclosure in Miaomiaowu before 0.9.3 allows any authenticated user to read other users' proxy-provider configurations by iterating the global auto-increment external_subscription_id value supplied to /api/user/proxy-provider-configs. Exposed fields include override scripts, filter rules, custom request headers and health-check URLs, so leaked headers may carry upstream credentials. The flaw requires a valid low-privileged account (PR:L) and only matters on multi-user deployments where accounts share an instance; a public write-up describing the enumeration approach exists, though it is not confirmed as working exploit code, and no CISA KEV entry or EPSS signal was supplied, keeping this at a moderate, prioritize-this-month severity rather than an emergency.
RemediationAI
Vendor-released patch: upgrade to Miaomiaowu 0.9.3, which scopes ListProxyProviderConfigsBySubscription by username and adds an ownership check before cache cleanup on delete; the release is at https://github.com/iluobei/miaomiaowu/releases/tag/v0.9.3 and the exact change set is commit 14ccf37ef82cff06b636454c29db7752cdce7cab (advisory: https://www.vulncheck.com/advisories/miaomiaowu-before-0.9.3-cross-user-proxy-provider-config-disclosure-via-external-subscription-id). No pre-patch code-level workaround is documented in the available references: because the enumeration happens in the storage query itself, blocking or rate-limiting /api/user/proxy-provider-configs at a reverse proxy would break legitimate proxy-provider management for all users while only slowing, not preventing, ID iteration. The practical interim control follows from the exposure model - the flaw is confined to multi-user instances, so consolidating to a single trusted account or restricting instance access to a trusted user set removes the cross-tenant blast radius, at the cost of losing per-user isolation. After upgrading, rotate any upstream credentials that were embedded in custom request headers on multi-user deployments, since those values may already have been read by another account; a public write-up of the enumeration technique is at https://hackmd.io/@hieuPenguinnn/miaomiaowu-proxy-provider-config-cross-user-idor.
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
Miaomiaowu is a Go-based proxy subscription and traffic-management service (vendor iluobei) that stores proxy-provider configs in a SQL-backed repository layer under internal/storage. The vulnerable repository method ListProxyProviderConfigsBySubscription built its query as SELECT ... FROM proxy_provider_configs WHERE external_subscription_id = ? ORDER BY id ASC, filtering solely on the subscription identifier while omitting the owning username. Because that identifier is a global auto-increment sequence shared across all tenants, the key an attacker controls (external_subscription_id) is both enumerable and not bound to their identity - the classic CWE-639 authorization bypass through user-controlled key. The HTTP handler at /api/user/proxy-provider-configs simply forwarded the client-supplied ID into that lookup, so the authenticated session's identity was never applied as a filter. The upstream fix threads the session username into the storage layer and adds AND username = ? to the SQL predicate, adds an ownership comparison before cache cleanup in the delete handler, and ships a regression test (TestListProxyProviderConfigsBySubscriptionScopedToOwner) that asserts an attacker querying a victim's subscription ID receives zero rows while the owner receives exactly one. The trigger is a simple authenticated API request with an integer ID; no race condition, memory corruption, or special configuration is involved.
Know when Miaomiaowu 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
Authenticated low-privileged user (PR:L) sends a simple enumerable request (AC:L, no UI) over the network for read-only cross-user disclosure, so C:L and I:N/A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Miaomiaowu before 0.9.3 contains an insecure direct object reference vulnerability in /api/user/proxy-provider-configs that allows authenticated users to read other users' configurations. Attackers can iterate the global auto-increment external_subscription_id parameter to disclose override scripts, filter rules, custom request headers and health-check URLs.
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.
EUVD-2026-113935
GHSA-j948-r3jj-xhjm
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB