<?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>Fission — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/fission/</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, 21 May 2026 20:15:31 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/fission/feed.xml" rel="self" type="application/rss+xml"/><item><title>Fission Function Invocation Bypass via Public Router Endpoint</title><link>https://feed.craftedsignal.io/briefs/2026-05-fission-function-bypass/</link><pubDate>Thu, 21 May 2026 20:15:31 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-fission-function-bypass/</guid><description>The Fission router exposes the `/fission-function/&lt;ns&gt;/&lt;name&gt;` endpoint on its public listener, allowing invocation of any function without an HTTPTrigger, leading to unauthorized function access and potential cross-tenant exploitation; patched in v1.23.0.</description><content:encoded><![CDATA[<p>Fission is a Kubernetes-native serverless framework. Versions up to 1.22.0 are vulnerable to a function invocation bypass. The Fission router registered an internal-style route (<code>/fission-function/&lt;ns&gt;/&lt;name&gt;</code>) for every Function object, irrespective of any existing HTTPTrigger. This route was exposed on the public listener (svc/router, port 8888). An attacker capable of reaching the router could invoke any function by guessing its <code>metadata.name</code> and namespace, thereby circumventing the constraints specified in HTTPTrigger objects, such as host, path, and allowed methods. This vulnerability was patched in version v1.23.0.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies a Fission deployment with a publicly accessible router (svc/router, port 8888).</li>
<li>Attacker enumerates or guesses the <code>metadata.name</code> and namespace of Fission functions.</li>
<li>Attacker crafts an HTTP GET request to <code>/fission-function/&lt;ns&gt;/&lt;name&gt;</code> on the public router endpoint.</li>
<li>The Fission router, lacking proper access control, forwards the request to the specified function.</li>
<li>The function executes, potentially performing unintended actions or leaking sensitive information.</li>
<li>In multi-tenant environments, an attacker in one tenant&rsquo;s pod can invoke functions in another tenant&rsquo;s namespace, crossing tenant boundaries.</li>
<li>Attacker bypasses HTTPTrigger-level restrictions (e.g., a function published only on POST /api/v2/foo can be invoked as GET /fission-function/<ns>/<name>).</li>
<li>The attacker probes response semantics (404 vs 200 vs 502) to enumerate existing function names.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows external callers to invoke functions that were not intended for public access, such as internal helpers or sample functions. It also bypasses HTTPTrigger restrictions, enabling invocation of functions with arbitrary headers and bodies. In multi-tenant deployments, this vulnerability can cross tenant boundaries, potentially leading to unauthorized access to sensitive data or resources. Function names can also be enumerated by probing the response semantics, providing attackers with valuable information for further attacks.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to Fission v1.23.0 or later to incorporate the fix implemented in PR #3369, which separates public and internal listeners.</li>
<li>Apply a NetworkPolicy to the Fission namespace to restrict ingress to <code>svc/router</code> (port 8888) only from authorized sources and block access to <code>/fission-function/...</code> as suggested in the mitigation steps.</li>
<li>If an ingress controller is used, implement path-based filtering at the ingress layer to block access to <code>/fission-function/</code> until the upgrade is complete.</li>
<li>Deploy the Sigma rule <code>Detect Fission Function Invocation Bypass</code> to identify attempts to exploit this vulnerability.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>fission</category><category>function-invocation</category><category>bypass</category><category>kubernetes</category></item></channel></rss>