<?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>Apostrophe — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/apostrophe/</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>Thu, 14 May 2026 18:30:26 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/apostrophe/feed.xml" rel="self" type="application/rss+xml"/><item><title>ApostropheCMS Account Takeover via Weak Password Reset Mechanism (CVE-2026-45013)</title><link>https://feed.craftedsignal.io/briefs/2026-05-weak-password-reset/</link><pubDate>Thu, 14 May 2026 18:30:26 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-weak-password-reset/</guid><description>ApostropheCMS is vulnerable to account takeover due to a weak password recovery mechanism; the password reset flow constructs the reset URL using `req.hostname`, derived from the attacker-controlled HTTP `Host` header when `apos.baseUrl` is not explicitly configured, enabling account takeover if the victim clicks a malicious password reset link.</description><content:encoded><![CDATA[<p>ApostropheCMS is vulnerable to a critical account takeover flaw (CVE-2026-45013) stemming from a weak password reset implementation. The vulnerability resides in <code>modules/@apostrophecms/login/index.js</code> within the <code>resetRequest</code> route. The issue arises when <code>apos.baseUrl</code> is not explicitly configured, causing the application to construct the password reset URL using the <code>Host</code> header of the incoming HTTP request. This allows an unauthenticated attacker, knowing a victim&rsquo;s email address, to craft a password reset request that directs the victim to a malicious domain under the attacker&rsquo;s control. The victim unknowingly provides the valid reset token to the attacker when clicking the link, enabling full account takeover. This vulnerability affects ApostropheCMS versions up to and including 4.29.0. It matters for defenders because successful exploitation requires minimal attacker effort and can lead to significant data breaches or unauthorized access.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker identifies a valid user&rsquo;s email address, potentially through publicly accessible information on the target website.</li>
<li>The attacker crafts an HTTP POST request to the <code>/api/v1/login/reset-request</code> endpoint, setting the <code>Host</code> header to a domain they control (e.g., <code>evil.attacker.com</code>). The request body includes the victim&rsquo;s email address in JSON format.</li>
<li>The server, lacking a configured <code>apos.baseUrl</code>, uses the attacker-controlled <code>Host</code> header to generate a password reset link.</li>
<li>The application sends a password reset email to the victim, containing a URL that points to the attacker&rsquo;s domain. This URL includes a valid, server-generated reset token and the victim&rsquo;s email address as query parameters.</li>
<li>The victim, believing the email to be legitimate, clicks the malicious link.</li>
<li>The victim&rsquo;s browser sends a GET request to the attacker&rsquo;s server, including the valid reset token and email address in the query parameters.</li>
<li>The attacker&rsquo;s server captures the reset token and email address from the incoming request.</li>
<li>The attacker uses the captured token and email address to submit a password reset request to the legitimate <code>/api/v1/login/reset</code> endpoint, setting a new password for the victim&rsquo;s account, resulting in full account takeover.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-45013 allows an attacker to gain full control of any user account for which they know the email address. This can lead to unauthorized access to sensitive data, modification of website content, and potential further compromise of the entire ApostropheCMS instance. The vulnerability requires no authentication and minimal interaction from the victim, making it easily exploitable at scale. The impact is especially high for deployments where <code>apos.baseUrl</code> is not configured, which is common in development environments and some production setups.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Immediately configure the <code>apos.baseUrl</code> option in your ApostropheCMS deployment to mitigate CVE-2026-45013, as described in the advisory&rsquo;s &ldquo;Remediation&rdquo; section. This will prevent the application from using the attacker-controlled <code>Host</code> header when generating password reset URLs.</li>
<li>Deploy the Sigma rule &ldquo;Detect ApostropheCMS Weak Password Reset Request&rdquo; to identify attempted exploitation by monitoring for password reset requests with a suspicious Host header.</li>
<li>Deploy the Sigma rule &ldquo;Detect Access to Password Reset URL&rdquo; to detect when a user clicks on a password reset link from an attacker-controlled host.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>cve</category><category>weak-password</category><category>account-takeover</category></item><item><title>ApostropheCMS Stored XSS via Image Widget Link (CVE-2026-45011)</title><link>https://feed.craftedsignal.io/briefs/2026-05-apostrophe-xss/</link><pubDate>Thu, 14 May 2026 18:30:11 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-apostrophe-xss/</guid><description>A stored cross-site scripting vulnerability (CVE-2026-45011) was identified in ApostropheCMS image widget functionality, where a user with the Editor role can configure an image widget link to use a javascript: URL payload, which will execute arbitrary JavaScript in the victim’s browser when clicked.</description><content:encoded><![CDATA[<p>A stored cross-site scripting (XSS) vulnerability exists within the image widget functionality of ApostropheCMS version 4.29.0. An attacker with Editor privileges can inject malicious JavaScript code by configuring an image widget&rsquo;s link field with a <code>javascript:</code> URL. This vulnerability allows the attacker to execute arbitrary JavaScript code in the browsers of other users who interact with the compromised image link, including administrators and public visitors. The vulnerability is identified as CVE-2026-45011.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker logs into ApostropheCMS with Editor privileges.</li>
<li>The attacker navigates to the home page and enables edit mode.</li>
<li>The attacker adds an Image widget to the main content area.</li>
<li>The attacker selects an existing image from the media library.</li>
<li>The attacker opens the image widget settings.</li>
<li>In the &ldquo;Link to&rdquo; field, the attacker selects the &ldquo;URL&rdquo; option.</li>
<li>In the URL field, the attacker enters a malicious <code>javascript:</code> payload (e.g., <code>javascript:alert(document.domain)</code>).</li>
<li>The attacker saves the widget and updates the page, publishing the malicious content.</li>
<li>A victim (administrator or guest) visits the published page and clicks on the linked image.</li>
<li>The JavaScript payload executes in the victim&rsquo;s browser, potentially allowing the attacker to perform actions on their behalf.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows an attacker with Editor privileges to store a malicious JavaScript payload in a published page within ApostropheCMS. When other users, including administrators or public visitors, click on the affected image link, the injected JavaScript executes in their browsers. This can lead to account compromise, access to sensitive data, modification of content, phishing attacks, and overall compromise of visitors who interact with the malicious image link.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Prioritize the following actions to mitigate this XSS vulnerability:</p>
<ul>
<li>Implement the vendor&rsquo;s recommended URL validation and sanitization for widget link fields to reject dangerous schemes like <code>javascript:</code> and <code>data:</code>.</li>
<li>Deploy the Sigma rule <code>Detect ApostropheCMS XSS via Javascript URL</code> to identify potential exploitation attempts.</li>
<li>Consider implementing a strict Content Security Policy (CSP) to limit the impact of potential XSS vulnerabilities.</li>
<li>Upgrade ApostropheCMS to a version that addresses CVE-2026-45011.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>xss</category><category>apostrophecms</category><category>cve-2026-45011</category><category>javascript</category></item><item><title>ApostropheCMS Authenticated SSRF via Rich-Text Widget Import (CVE-2026-45012)</title><link>https://feed.craftedsignal.io/briefs/2026-05-apostrophe-ssrf/</link><pubDate>Thu, 14 May 2026 18:27:23 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-apostrophe-ssrf/</guid><description>ApostropheCMS is vulnerable to authenticated server-side request forgery (SSRF) via rich-text widget import; an attacker with edit access can trigger server-side requests to attacker-controlled URLs during widget validation, enabling internal port scanning and potential data exfiltration by re-hosting image-compatible responses.</description><content:encoded><![CDATA[<p>ApostropheCMS versions 4.29.0 and earlier are vulnerable to an authenticated server-side request forgery (SSRF) vulnerability (CVE-2026-45012) within the rich-text widget import functionality. An authenticated user, possessing the ability to submit or edit rich-text widget content, can manipulate the import process to induce the server to issue requests to arbitrary URLs during widget validation. By injecting a crafted <code>&lt;img src&gt;</code> tag within the imported HTML, an attacker can trigger the server to fetch content from a specified URL. If the server receives an image-compatible response, ApostropheCMS may persist and re-host the fetched content, creating a vector for exfiltration of sensitive information. This vulnerability enables attackers to perform internal port scanning and potentially exfiltrate data.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An authenticated attacker logs into the ApostropheCMS application.</li>
<li>The attacker crafts a malicious rich-text widget payload containing an <code>import.html</code> attribute.</li>
<li>Within the <code>import.html</code>, the attacker includes an <code>&lt;img src&gt;</code> tag pointing to an attacker-controlled URL or internal resource.</li>
<li>The attacker submits the widget payload to the <code>/api/v1/@apostrophecms/area/validate-widget?aposMode=draft</code> endpoint.</li>
<li>The server-side <code>validate-widget</code> route parses the HTML content, identifies the <code>&lt;img&gt;</code> tag, and resolves the URL.</li>
<li>The server then performs an HTTP <code>fetch()</code> request to the resolved URL, as specified in the <code>src</code> attribute.</li>
<li>If the response is image-compatible, ApostropheCMS attempts to process and store the fetched content as an image asset.</li>
<li>The attacker can then access the re-hosted image through a generated image URL, potentially exfiltrating data. If the response is not an image, the SSRF still occurs and can be used for reconnaissance purposes.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this SSRF vulnerability, tracked as CVE-2026-45012, allows authenticated users with rich-text widget editing privileges to trigger server-side requests to arbitrary URLs. This can enable attackers to scan internal network resources (127.0.0.1, private subnets), perform blind or semi-blind internal port and service discovery, and potentially exfiltrate data by causing the application to store and re-host fetched image content. The vulnerability affects ApostropheCMS versions 4.29.0 and earlier.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to a patched version of ApostropheCMS that addresses the SSRF vulnerability (CVE-2026-45012).</li>
<li>Deploy the Sigma rule <code>Detect ApostropheCMS SSRF via validate-widget</code> to detect requests to the vulnerable API endpoint with potentially malicious image URLs.</li>
<li>Monitor webserver logs for HTTP requests to internal or unusual destinations originating from the ApostropheCMS server.</li>
<li>Implement strict input validation and sanitization for user-supplied URLs, especially within rich-text widgets, to prevent the injection of malicious URLs.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>ssrf</category><category>apostrophecms</category><category>cve-2026-45012</category></item></channel></rss>