<?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/"><channel><title>Affine — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/affine/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 19 Mar 2026 12:09:56 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/affine/feed.xml" rel="self" type="application/rss+xml"/><item><title>Critical XSS Vulnerabilities in AFFiNE</title><link>https://feed.craftedsignal.io/briefs/2026-03-affine-xss/</link><pubDate>Thu, 19 Mar 2026 12:09:56 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-03-affine-xss/</guid><description>Two critical XSS vulnerabilities, Reflected XSS in the /image-proxy endpoint and Stored XSS in bookmark cards, were discovered in AFFiNE, a self-hosted alternative to Notion, with the vendor being unresponsive.</description><content:encoded><![CDATA[<p>A cybersecurity researcher discovered two critical XSS vulnerabilities in AFFiNE, a self-hosted alternative to Notion, which has 66k stars on GitHub. The vulnerabilities include a reflected XSS in the <code>/image-proxy</code> endpoint and a stored XSS vulnerability in bookmark cards. The <code>/image-proxy</code> endpoint vulnerability allows unauthenticated users to fetch arbitrary URLs and reflect the URL headers in the response, potentially leaking internal IP addresses. The stored XSS vulnerability enables attackers to insert JavaScript links within bookmark cards. The researcher reported that the AFFiNE maintainers have been unresponsive to vulnerability reports for months, despite ongoing commits to the repository, raising concerns about the security of AFFiNE users.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker identifies an AFFiNE instance.</li>
<li>The attacker crafts a malicious URL targeting the <code>/image-proxy</code> endpoint with a payload designed to reflect arbitrary headers, possibly revealing internal network information.</li>
<li>The attacker sends the crafted URL to a victim, or the attacker directly accesses the vulnerable endpoint if internal IP leakage is the goal.</li>
<li>The AFFiNE server fetches the URL and reflects the attacker-controlled headers in the response, leading to XSS execution in the victim&rsquo;s browser.</li>
<li>Alternatively, the attacker crafts a bookmark card containing a &ldquo;javascript:&rdquo; link.</li>
<li>The attacker saves the malicious bookmark card within AFFiNE.</li>
<li>When a user clicks on the malicious bookmark card, the injected JavaScript code executes within their browser session, enabling further malicious actions.</li>
<li>The attacker can then steal cookies, redirect the user, or perform other actions within the context of the AFFiNE application.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of the reflected XSS vulnerability can expose internal IP addresses of AFFiNE instances, potentially affecting all users of the self-hosted application. The stored XSS vulnerability can lead to account takeover, data theft, or further propagation of malicious content within the AFFiNE workspace. AFFiNE has 66k stars on GitHub, indicating a significant user base, making the impact potentially widespread. The affected sectors are broad, as AFFiNE is a general-purpose productivity tool.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Block the <code>/image-proxy</code> endpoint at the network or proxy level as a temporary mitigation for the reflected XSS vulnerability, as suggested by the researcher.</li>
<li>Educate users to avoid clicking on links starting with &ldquo;javascript:&rdquo; in bookmark cards to prevent exploitation of the stored XSS vulnerability.</li>
<li>Deploy the Sigma rule to detect access to the vulnerable <code>/image-proxy</code> endpoint.</li>
<li>Deploy the Sigma rule to detect bookmark cards with suspicious JavaScript links.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>xss</category><category>vulnerability</category><category>affine</category></item></channel></rss>