<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Loopx (&gt;= 0.0.1, &lt; 0.4.5) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/loopx--0.0.1--0.4.5/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Mon, 19 Oct 2026 20:10:44 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/loopx--0.0.1--0.4.5/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>LoopX serve-status CORS Misconfiguration and Information Disclosure</title><link>https://feed.craftedsignal.io/briefs/2026-10-loopx-cors-exposure/</link><pubDate>Mon, 19 Oct 2026 20:10:44 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-10-loopx-cors-exposure/</guid><description>LoopX serve-status (v0.0.1 to v0.4.4) uses a permissive wildcard CORS policy on unauthenticated local HTTP endpoints, allowing any website to exfiltrate private control-plane state and markdown documentation from local developer environments.</description><content:encoded><![CDATA[<p>LoopX versions prior to 0.4.5 contain a security vulnerability in the <code>serve-status</code> component where the HTTP server issues an <code>Access-Control-Allow-Origin: *</code> header on all responses, including sensitive read-only endpoints. Because the service binds to well-known local ports (8765 and 8766) and is frequently configured to run persistently as a background agent via <code>launchd</code> on macOS or equivalent startup mechanisms on other platforms, it creates a persistent, machine-wide attack surface.</p>
<p>An attacker can leverage this misconfiguration by enticing a user to visit a malicious website, which then issues unauthorized cross-origin <code>fetch()</code> requests to <code>localhost</code>. This allows the attacker to read the <code>status.json</code> file (revealing project paths and task history) and fetch the content of any <code>.md</code> or <code>.markdown</code> file within the registered goal repositories. While write endpoints are protected by appropriate origin checks, the read surface is sufficient to exfiltrate private design notes, handoff documentation, and environment context without user interaction or authentication.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The user installs and runs <code>loopx serve-status</code> as a persistent background service (e.g., via <code>scripts/macos-dashboard-launchagent.sh</code>), binding the service to <code>127.0.0.1:8766</code>.</li>
<li>The attacker hosts a malicious website containing a cross-origin <code>fetch()</code> script targeting <code>http://127.0.0.1:8766/status.json</code>.</li>
<li>The victim opens the attacker-controlled website in their local browser.</li>
<li>The browser automatically executes the malicious script, which makes an unauthenticated GET request to the local LoopX service.</li>
<li>The LoopX service returns the JSON status payload along with the header <code>Access-Control-Allow-Origin: *</code>, which the browser accepts due to the permissive CORS policy.</li>
<li>The attacker's script parses the returned JSON to identify <code>goal_id</code>s and local repository paths.</li>
<li>The attacker's script iterates through the goal list, issuing additional GET requests to <code>http://127.0.0.1:8766/review-material</code> to exfiltrate the contents of private markdown files.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for the unauthorized exfiltration of sensitive information stored in developer environments. This includes project task history, local directory structures, and confidential design or handoff documentation. Because the service is often persistent and uses hardcoded default ports, the impact is sustained across user login sessions, affecting any developer running vulnerable versions of the LoopX toolset.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade all LoopX installations to version 0.4.5 or later immediately.</li>
<li>If an immediate upgrade is not possible, restrict access to the LoopX control-plane ports (8765/8766) via host-based firewall rules to prevent cross-origin traffic originating from external browser contexts.</li>
<li>Audit local file repositories associated with LoopX for sensitive credentials or keys that may have been accessible via the <code>/review-material</code> endpoint prior to patching.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>info-disclosure</category><category>cors</category><category>loopx</category><category>cve-2026-108372</category></item></channel></rss>