Skip to main content

LoopX CVE-2026-108372

| EUVDEUVD-2026-103186 HIGH
Origin Validation Error (CWE-346)
2026-10-16 GitHub_M
7.1
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Lure operator to attacker-controlled web page
  2. Exploit
    Script sends cross-origin requests to loopback status port
  3. Execution
    Wildcard ACAO permits cross-origin reads
  4. Impact
    Exfiltrate 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 loopx serve-status (the status_server.py HTTP server) on a reachable loopback port AND, in a browser sharing that session, visits attacker-controlled web content that scripts cross-origin requests to that port. Exploitation is limited to the four unauthenticated read routes (GET /status.json, GET /review-material, GET /, POST /control-plane/configure-goal/dry-run) and is read-only - no cross-origin writes or arbitrary-file access are possible. Limiting factors: the attacker must know or guess the loopback port (described as predictable), the operator must perform the user-interaction step of visiting the malicious page (UI:P), and affected versions are 0.0.1 through pre-0.4.5.

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 loopx serve-status on a predictable loopback port and, in the same browser session, visits a malicious web page. That page's JavaScript issues cross-origin requests to the local server (e.g. GET /status.json or GET /review-material?goal_id=...&path=...); because the server returns Access-Control-Allow-Origin: * for unauthenticated responses, the browser allows the attacker's script to read the responses and exfiltrate control-plane state, goal/run metadata, local absolute paths, and private Markdown files below registered goal roots. No public exploit was identified in the provided data, and the attack reads data only - it cannot write configuration or fetch arbitrary files.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

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

Alert me

AnalysisAIv1 – 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

loopx 0.0.1, < 0.4.5

Affected Packages

euvd loopx fix: 0.4.5

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

Vendor (GitHub_M) PRIMARY 7.1 HIGH
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
vuln.today AI 6.5 MEDIUM

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.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 16, 2026 - 23:18 EUVD
CVE Published
Oct 16, 2026 - 21:29 cve.org
HIGH 7.1

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

Prevalence
Rare
obscure open-source loop-engineering dev tool, tiny deployment footprint
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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 HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
High

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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