Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain target merchant's cookie_id
-
ExploitCraft POST /send-message with public default api_key
-
ExecutionBypass missing authorization check (CWE-1188)
-
ImpactSend spoofed messages to merchant's buyers
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V13 - Configuration Secure default settings
|
| Exploitation Conditions | Three concrete prerequisites must hold: (1) the POST /send-message endpoint is network-reachable; (2) the target instance is running a pre-patch version (≤2.0.7) where the QQ/API send secret is unset or left at one of the published default/test values ('xianyu_qq_reply_2024', 'xianyu_api_secret_2024', 'zhinina_test_key'), since the vulnerable code fell back to the hard-coded API_SECRET_KEY when no secret was configured; and (3) the attacker must know a valid cookie_id for the specific merchant account they want to impersonate - this account-specific identifier is the AT:P requirement and is the main factor limiting mass exploitation. Impact is limited to sending messages (integrity) from the merchant to buyers; no data is read and no code is executed. The fix disables the endpoint by default and additionally requires the owning user's login credential (HTTP 401 if missing/invalid, 403 if the account is not owned by the caller), so patched/properly-configured deployments are not exploitable this way. |
| Impact | This is a genuine but medium-tier issue, not a top-priority emergency. The input CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) scores 6.3 and shows integrity-only impact (VI:L) with no confidentiality or availability effect - consistent with the description, which is about sending spoofed messages, not code execution or data theft. The PR:N reflects that authentication is effectively defeated by publicly known hard-coded default API secrets (confirmed in the source: 'xianyu_qq_reply_2024', 'xianyu_api_secret_2024', 'zhinina_test_key'), while AT:P reflects a real prerequisite: the attacker must supply a valid cookie_id belonging to the target merchant account. No EPSS score and no CISA KEV status were provided, and the input does not confirm working public exploit code, so there is no evidence of active or widespread exploitation. The vuln.today decision label is 'this_month' (not 'act_now'/'emergency'), aligning with a patch-promptly-but-not-drop-everything posture. The dominant risk driver is the trivially public default secret combined with a missing authorization check (CWE-1188); the main mitigating factors are the limited integrity-only impact and the obscure, small-footprint nature of the affected product. |
| Exploit ScenarioDerived | An attacker who learns or enumerates a target merchant's cookie_id sends an unauthenticated POST /send-message request using the publicly known hard-coded api_key, causing the server to send arbitrary Xianyu messages to that merchant's buyers from the merchant's account - useful for scams, phishing, or reputation damage. The input does not confirm working public exploit code, but the default secrets are published in the project source, so reproduction is straightforward for anyone with a valid target cookie_id. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Missing authorization in the POST /send-message endpoint of xianyu-auto-reply-fix through 2.0.7 lets unauthenticated remote attackers send arbitrary Xianyu messages to buyers from another merchant's account by supplying a published default/test API secret plus that account's cookie_id along with chosen chat_id, to_user_id and message values. Exploitation is gated by three conditions: the endpoint must be reachable, the instance must still be running a pre-patch build with the send secret unset or left at one of the published defaults ('xianyu_qq_reply_2024', 'xianyu_api_secret_2024', 'zhinina_test_key'), and the attacker must know a valid account-specific cookie_id, which limits mass exploitation. Impact is confined to message integrity - no data is read and no code is executed - yielding an assessed CVSS 3.1 score of AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N; no public exploit code has been identified at time of analysis, and the vendor has published an upstream fix commit.
RemediationAI
Deploy the upstream fix, commit 999cfe61c401322d9893eb81ad1a76beabba6cfb (https://github.com/GuDong2003/xianyu-auto-reply-fix/commit/999cfe61c401322d9893eb81ad1a76beabba6cfb); a tagged release version shipping this commit is not confirmed in the available data, so verify the commit or a post-2.0.7 build is present. After upgrading, POST /send-message is disabled by default: an administrator must generate a random secret in the web console's 'API安全设置' and callers must send Authorization: Bearer <the owning user's login credential> together with api_key, cookie_id, chat_id, to_user_id and message, expecting HTTP 401 for missing/expired credentials and HTTP 403 for accounts the caller does not own; the upgrade automatically blanks the three previously published default/test secrets while preserving custom ones, so legacy QQ/API integrations must be reconfigured. If upgrading immediately is not possible, block POST /send-message at the reverse proxy or firewall and restrict it to trusted integration hosts (trade-off: external QQ/API automations stop working), and replace the seeded 'qq_reply_secret_key' in system_settings with a long random value - clearing the value to empty does not help on vulnerable builds, because an empty or unreadable setting triggers the hard-coded API_SECRET_KEY fallback; note that a custom secret only closes the public-default path and does not add the per-user ownership check, so account cookie_ids must still be treated as sensitive.
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 affected component is a Python/FastAPI service (reply_server.py) that exposes an automation bridge for Xianyu merchant accounts. The root cause is CWE-1188 (Insecure Default Initialization of Resource): db_manager.init_db seeded a 'qq_reply_secret_key' setting with the publicly known value 'xianyu_qq_reply_2024', while the code additionally carried a hard-coded module constant API_SECRET_KEY = 'xianyu_api_secret_2024' used as a fallback whenever the database setting was empty or the lookup raised an exception, and a third literal 'zhinina_test_key' was special-cased to return success without further checks. Because the api_key comparison used a plain equality check and the handler never resolved the caller identity or verified that the supplied cookie_id belonged to the caller, anyone who knew the default secret and a target cookie_id could drive the message-sending path the same way a legitimate integration would. The upstream fix (commit 999cfe61c401322d9893eb81ad1a76beabba6cfb) removes the fallback constant, rejects requests when the secret is unset/blank/unreadable or matches any of the three historic insecure values, switches to hmac.compare_digest, disables the endpoint by default, adds a get_current_user dependency requiring the owning user's login credential (HTTP 401 on missing/invalid, HTTP 403 when the account is not owned by the caller), and enforces account ownership before blacklist lookups, instance resolution and sending; migrations also blank the legacy public secrets in system_settings. One input tag labels this issue RCE, but the assessed impact and the code path only support sending messages as the merchant account. CPE cpe:2.3:a:gudong2003:xianyu-auto-reply-fix identifies the affected package, though it carries no version granularity.
Know when Xianyu Auto Reply Fix 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:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Public default secret defeats auth (PR:N); knowing the target's specific cookie_id is a condition outside attacker control (AC:H); impact is spoofed-message integrity only (I:L), with no confidentiality or availability effect.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
xianyu-auto-reply-fix through 2.0.7 contains a missing authorization vulnerability in the POST /send-message endpoint that allows unauthenticated attackers to send messages from other users' accounts using publicly known default API secrets. Attackers can supply the hard-coded api_key and another user's cookie_id, plus chosen chat_id, to_user_id and message values, to send arbitrary Xianyu messages to buyers from that merchant account.
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-112492
GHSA-8xg3-rxxw-rm99
NVD
CVE.org
Exploit-DB