<?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>Karakeep — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/karakeep/</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:27:42 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/karakeep/feed.xml" rel="self" type="application/rss+xml"/><item><title>Karakeep SDK SSRF via metascraper-logo-favicon</title><link>https://feed.craftedsignal.io/briefs/2026-05-karakeep-ssrf/</link><pubDate>Thu, 14 May 2026 18:27:42 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-karakeep-ssrf/</guid><description>Karakeep SDK is vulnerable to SSRF via the `metascraper-logo-favicon` plugin, which bypasses intended SSRF protections by making HTTP requests to URLs extracted from attacker-controlled HTML `&lt;link rel="icon"&gt;` tags, allowing authenticated users to trigger server-side requests to arbitrary internal URLs.</description><content:encoded><![CDATA[<p>The Karakeep SDK is vulnerable to Server-Side Request Forgery (SSRF) due to the <code>metascraper-logo-favicon</code> plugin (v5.49.5) not being subject to the application&rsquo;s <code>validateUrl()</code> function. This function, which is normally used to protect against SSRF, is bypassed when fetching favicon URLs from <code>&lt;link rel=&quot;icon&quot;&gt;</code> tags within HTML content. An attacker can exploit this by creating a bookmark with a URL pointing to a malicious page. This page contains <code>&lt;link rel=&quot;icon&quot;&gt;</code> tags with <code>href</code> attributes pointing to internal or private network addresses. When the server fetches the page, it will then make requests to these internal URLs without proper validation, potentially exposing sensitive information or allowing unauthorized access to internal resources. This vulnerability was introduced by the lack of validation in the <code>parseHtmlSubprocess.ts</code> file.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker crafts a malicious HTML page with <code>&lt;link rel=&quot;icon&quot;&gt;</code> tags containing internal or private IP addresses (e.g., <code>127.0.0.1</code>, <code>169.254.169.254</code>, <code>192.168.1.1</code>) in the <code>href</code> attribute.</li>
<li>The attacker hosts this malicious HTML page on a publicly accessible server (e.g., <code>https://attacker.example.com/ssrf.html</code>).</li>
<li>A Karakeep user, authenticated and authorized to create bookmarks, creates a new bookmark with the URL of the malicious HTML page.</li>
<li>The Karakeep server fetches the HTML content of the bookmarked page using <code>fetchWithProxy()</code>. This initial request passes through the <code>validateUrl()</code> function, ensuring the main URL is a valid public address.</li>
<li>The fetched HTML content is passed to the <code>parseHtmlSubprocess.ts</code> script, which utilizes <code>metascraper-logo-favicon</code> to parse the HTML and extract favicon URLs from the <code>&lt;link rel=&quot;icon&quot;&gt;</code> tags.</li>
<li><code>metascraper-logo-favicon</code> extracts the malicious URLs from the <code>href</code> attributes of the <code>&lt;link rel=&quot;icon&quot;&gt;</code> tags.</li>
<li>The <code>reachable-url</code> library, wrapped by <code>got</code>, is used to make HTTP GET requests to the extracted favicon URLs <em>without</em> any SSRF validation.</li>
<li>The Karakeep server makes HTTP GET requests to the attacker-specified internal or private IP addresses, bypassing the intended SSRF protections, potentially leaking sensitive information or allowing unauthorized access.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this SSRF vulnerability allows an attacker to force the Karakeep server to make requests to internal services and resources. This can result in the exposure of sensitive information such as cloud metadata (e.g., AWS IAM credentials via <code>http://169.254.169.254/latest/meta-data/</code>), internal service discovery, and redirection-based data leaks. The application&rsquo;s intended SSRF protections are rendered ineffective, potentially leading to full compromise of the Karakeep instance and its associated data.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Deploy the following Sigma rule to detect HTTP requests originating from the Karakeep server to internal IP addresses, indicating potential SSRF exploitation (log source: <code>network_connection</code>, rule title: &ldquo;Detect Karakeep SSRF to Internal IPs&rdquo;).</li>
<li>Implement the suggested fix by adding URL validation hooks to the <code>gotOpts</code> within <code>metascraperLogo</code> in <code>apps/workers/scripts/parseHtmlSubprocess.ts</code>, ensuring that all favicon URLs are validated by <code>validateUrl()</code> before being requested.</li>
<li>Upgrade the <code>@karakeep/sdk</code> package to a version greater than 0.31.0 to incorporate any official patches addressing this vulnerability (affected product: <code>@karakeep/sdk</code>).</li>
<li>Monitor outbound network traffic from the Karakeep server for connections to internal IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and the AWS metadata endpoint (169.254.169.254) (IOCs).</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>ssrf</category><category>karakeep</category><category>metascraper</category><category>web-application</category></item></channel></rss>