Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure operator to attacker-controlled web page
-
ExploitScript sends cross-origin requests to loopback status port
-
ExecutionWildcard ACAO permits cross-origin reads
-
ImpactExfiltrate control-plane state, local paths, and private Markdown
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
|
| Exploitation Conditions | Requires that the operator is actively running |
| Impact | This is a genuine but bounded-impact issue best treated as medium priority, not an emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N) correctly captures a read-only cross-origin information-disclosure flaw: no privileges needed, low attack complexity, but exploitation DEPENDS on passive user interaction (UI:P) - an operator must visit attacker-controlled web content while loopx serve-status is running. The 7.1 score is driven entirely by VC:H (confidentiality); VI/VA are N, consistent with the advisory's explicit statement that the affected routes provide no cross-origin writes or arbitrary-file access. No EPSS score, KEV listing, or POC was provided in the input, so there is no evidence of active exploitation or published exploit code - the real-world threat is opportunistic and requires both a running local status server on a predictable loopback port and successful social engineering of the operator's browser. The signals are internally consistent (network-reachable via browser, gated by user interaction and loopback reachability), so there are no contradictions to flag; the main caveat is that EPSS/KEV/POC data is simply absent rather than confirmed-negative. |
| Exploit ScenarioDerived | An operator runs |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Cross-origin data exposure in LoopX's local status server lets an attacker-controlled web page read control-plane state from an operator's machine. From version 0.0.1 up to but not including 0.4.5, loopx serve-status (loopx/status_server.py) emits Access-Control-Allow-Origin: * on unauthenticated responses bound to predictable loopback ports, so any website the operator visits while the server is running can script cross-origin requests to GET /status.json, GET /review-material?goal_id=...&path=..., GET /, and POST /control-plane/configure-goal/dry-run, harvesting goal and run metadata, absolute local paths, private Markdown files under registered goal roots, and dry-run configuration projections. The request vector is unauthenticated (CVSS PR:N) but exploitation requires the user-interaction step of visiting malicious web content (UI:P), and the affected routes are strictly read-only. No public exploit code has been identified at time of analysis and the issue is not in CISA KEV; it is a genuine but bounded-impact information disclosure best treated as medium priority, with the upstream fix released in 0.4.5.
RemediationAI
Vendor-released patch: upgrade LoopX to version 0.4.5 or later, which replaces the wildcard Access-Control-Allow-Origin: * with loopback-only origin echoing plus Vary: Origin in cors_response_headers() (see https://github.com/loopx-project/loopx/releases/tag/v0.4.5, PR https://github.com/loopx-project/loopx/pull/3137, commit https://github.com/loopx-project/loopx/commit/838720fba42bd22f71b5bb763ec406f7bdf4c940, and advisory https://github.com/loopx-project/loopx/security/advisories/GHSA-vx2m-gpq4-8j5q). If immediate upgrade is not possible, the most effective compensating control is to stop the loopx serve-status process whenever it is not actively needed, since the exposure only exists while the server is running; the trade-off is loss of live status visibility. Operators who must keep it running should bind the server strictly to 127.0.0.1 (never 0.0.0.0), avoid browsing untrusted or attacker-controllable web content in the same browser session/profile that can reach the loopback port, and use a separate browser profile or a non-browser client for status checks (non-browser clients send no Origin header and are unaffected by CORS on either the vulnerable or patched build). Host-based firewall rules or OS-level ACLs that restrict inbound connections to the status port to the local process/user add defense in depth, though they do not stop browser-originated requests from the same host and may break legitimate local integrations relying on the API.
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 root cause is CWE-346 (Origin Validation Error): LoopX's StatusRequestHandler._send_json() and do_OPTIONS() unconditionally returned permissive CORS headers (Access-Control-Allow-Origin: *, Access-Control-Allow-Methods: GET, POST, OPTIONS, Access-Control-Allow-Headers: Content-Type) on the unauthenticated HTTP status server that loopx serve-status exposes on loopback. Because the server is a lightweight Python HTTP service (CPE cpe:2.3:a:huangruiteng:loopx:*), it has no authentication layer, so any browser origin that could reach the port was implicitly trusted to read responses. The upstream fix (PR #3137, commit 838720fba42bd22f71b5bb763ec406f7bdf4c940) replaces the wildcard with a cors_response_headers(origin) helper that echoes the Origin header only when is_loopback_origin() confirms a loopback origin, adds Vary: Origin for correct cache handling, and returns no ACAO header at all for foreign or absent origins - browsers then block the cross-origin read while non-browser clients (which send no Origin) are unaffected. New tests in tests/test_status_server_cors.py assert that loopback origins are echoed and https://evil.example is rejected. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N) and the assessed CVSS 3.1 equivalent (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N) both confirm unauthenticated network reachability with high confidentiality impact but no integrity or availability impact - consistent with the advisory's statement that no cross-origin writes or arbitrary-file access are possible.
Know when Loopx 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:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Browser-mediated cross-origin read needs no auth (PR:N) but requires the operator to visit a malicious page (UI:R); confidentiality-only disclosure so C:H, I/A:N, scope unchanged.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Open and provider-neutral, LoopX is a lightweight state kernel and local-first control plane for loop engineering. From version 0.0.1 until 0.4.5, loopx serve-status in loopx/status_server.py uses StatusRequestHandler._send_json() and do_OPTIONS() to send Access-Control-Allow-Origin: * for unauthenticated responses on predictable loopback ports. A remote attacker can cause an operator who visits attacker-controlled web content to issue cross-origin requests to GET /status.json, GET /review-material?goal_id=...&path=..., GET /, and POST /control-plane/configure-goal/dry-run, exposing control-plane state, goal and run information, local absolute paths, private Markdown files below registered goal roots, and dry-run configuration projections. The affected routes do not provide cross-origin writes or arbitrary-file access. This issue is fixed in version 0.4.5.
Technical POC Analysis
CWE-346 (Origin Validation Error); the advisory also scopes it under CWE-942.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
LoopX's local status server (loopx serve-status) versions 0.0.1 up to but not including 0.4.5 exposes control-plane state, absolute local paths, and private Markdown documents to any website an operator visits while the server is running, due to an overly permissive CORS policy on unauthenticated loopback endpoints. This affects developers and operators who run the status server on their workstations, potentially leaking sensitive project goals, run metadata, and internal file structures to external actors without any attacker authentication. Leadership should care because this could lead to inadvertent disclosure of proprietary or sensitive operational data, though no public exploit identified at time of analysis.
No vendor-released patch identified at time of analysis. Interim mitigations: disable the loopx serve-status process when not in use; bind the status server exclusively to 127.0.0.1 and remove the Access-Control-Allow-Origin: * header; restrict browser access to localhost via firewall rules; run the status server in an isolated environment without access to sensitive files; and monitor for suspicious cross-origin requests to loopback ports.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-103186
NVD
CVE.org
GitHub
Exploit-DB