<?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>Monetr — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/monetr/</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, 02 May 2024 12:00:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/monetr/feed.xml" rel="self" type="application/rss+xml"/><item><title>Monetr Lunch Flow SSRF Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-05-monetr-ssrf/</link><pubDate>Thu, 02 May 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-05-monetr-ssrf/</guid><description>A server-side request forgery (SSRF) vulnerability in Monetr's Lunch Flow integration allows authenticated users on self-hosted instances to send HTTP GET requests to arbitrary URLs, potentially exposing sensitive information.</description><content:encoded><![CDATA[<p>A server-side request forgery (SSRF) vulnerability was identified in the Lunch Flow integration of Monetr, affecting self-hosted instances. This vulnerability allows any authenticated user to cause the Monetr server to issue HTTP GET requests to arbitrary URLs, with the response body from non-200 upstream responses reflected back in the API error message. The URL validator on the <code>POST /api/lunch_flow/link</code> endpoint lacked sufficient filtering, failing to block loopback, RFC1918, link-local, or cloud-provider metadata addresses. This allows attackers to potentially access internal resources or cloud instance metadata. The vulnerability was addressed in Monetr version 1.12.5. The hosted <code>my.monetr.app</code> service is not affected because <code>LunchFlow.Enabled</code> is set to <code>false</code>.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker registers an account on a vulnerable self-hosted Monetr instance where public sign-up is enabled (<code>AllowSignUp=true</code>).</li>
<li>The attacker authenticates to the Monetr instance.</li>
<li>The attacker crafts a malicious <code>POST</code> request to the <code>/api/lunch_flow/link</code> endpoint, providing a URL pointing to an internal resource, such as a cloud metadata endpoint (e.g., <code>http://169.254.169.254/latest/meta-data/</code>).</li>
<li>The Monetr server, due to insufficient URL validation, accepts the malicious URL.</li>
<li>The Monetr server issues an HTTP GET request to the attacker-supplied URL.</li>
<li>The external service or internal resource responds to the Monetr server.</li>
<li>If the response is not a 200 OK, the Monetr server reflects the response body in the API error message within the JSON response to the attacker.</li>
<li>The attacker observes the reflected response body, potentially revealing sensitive information like cloud instance metadata or internal service details.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this SSRF vulnerability can lead to the exposure of sensitive information, such as cloud instance metadata (e.g., AWS EC2 IMDS). This could allow an attacker to gain unauthorized access to other cloud resources or internal systems. The vulnerable instances are self-hosted Monetr deployments running the default configuration with <code>LunchFlow.Enabled=true</code> and <code>AllowSignUp=true</code>. An attacker could also cause a denial-of-service by providing a URL that returns a very large response body, exhausting the server&rsquo;s memory.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to Monetr version <code>v1.12.5</code> or later to patch the SSRF vulnerability. This version introduces a new config field <code>LunchFlow.AllowedApiUrls</code> and caps response body reads at 10 MiB.</li>
<li>For operators who cannot upgrade immediately, set <code>MONETR_ALLOW_SIGN_UP=false</code> to disable public sign-up, limiting access to the vulnerable endpoint to trusted users.</li>
<li>Alternatively, disable Lunch Flow entirely by setting <code>lunchFlow.enabled: false</code> in your config file. This will cause the vulnerable endpoints to return 404.</li>
<li>Implement network-level egress restrictions to limit outbound HTTP traffic from the Monetr pod/container to only <code>lunchflow.app</code> (or other legitimate Lunch Flow hosts), mitigating the SSRF primitive.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>ssrf</category><category>monitr</category><category>github-advisory</category></item></channel></rss>