<?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>Nuclio &lt;= 1.15.27 - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/nuclio--1.15.27/</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>Wed, 08 Jul 2026 20:26:14 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/nuclio--1.15.27/feed.xml" rel="self" type="application/rss+xml"/><item><title>Nuclio Controller Vulnerability Leads to Persistent Kubernetes RCE (GHSA-v5px-423j-pf7p)</title><link>https://feed.craftedsignal.io/briefs/2026-07-nuclio-rce-ghsa/</link><pubDate>Wed, 08 Jul 2026 20:26:14 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-nuclio-rce-ghsa/</guid><description>The Nuclio controller improperly sanitizes user-controlled input (cron trigger event headers and body) before injecting it into `curl` commands executed by Kubernetes CronJobs, allowing remote attackers to perform command injection and achieve remote code execution (RCE) by breaking quoting contexts in header keys or utilizing shell command substitution in event bodies, leading to arbitrary command execution with root privileges and potential persistence within the Kubernetes cluster.</description><content:encoded><![CDATA[<p>A critical vulnerability (GHSA-v5px-423j-pf7p, CWE-78) has been identified in the Nuclio controller, affecting all versions up to and including 1.15.27. This flaw stems from inadequate sanitization of user-provided input, specifically <code>event.headers</code> keys and <code>event.body</code> content within cron trigger specifications for NuclioFunctions. When the controller generates a Kubernetes CronJob, it constructs a <code>curl</code> invocation string that incorporates these unsanitized values directly into a shell command executed by <code>/bin/sh -c</code>. Attackers can exploit this by injecting shell metacharacters - either by breaking the double-quote context in <code>headerKey</code> or by using command substitution in <code>event.body</code> - to execute arbitrary commands within the CronJob's container. These CronJobs typically run with root privileges and, notably, lack Kubernetes <code>ownerReferences</code>, allowing them to persist indefinitely even if the original NuclioFunction is deleted, posing a significant risk for persistent remote code execution within the cluster.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker, with permissions to create or modify NuclioFunctions in the Kubernetes cluster, crafts a malicious NuclioFunction definition.</li>
<li>The attacker includes a <code>cron</code> trigger with a specially crafted <code>event.headers</code> key (e.g., <code>X-Inject&quot;; ARBITRARY_COMMAND; echo &quot;</code>) or a malicious <code>event.body</code> (e.g., <code>$(ARBITRARY_COMMAND)</code>) within the function's specification.</li>
<li>The Nuclio controller reconciles the malicious NuclioFunction, invoking <code>generateCronTriggerCronJobSpec</code> to construct the internal <code>curl</code> command string.</li>
<li>During command construction, the unsanitized <code>headerKey</code> or <code>eventBody</code> is injected directly into the shell command argument passed to <code>/bin/sh -c</code>. For <code>headerKey</code>, double quotes are improperly handled, allowing direct shell command injection; for <code>eventBody</code>, <code>strconv.Quote</code> fails to escape <code>$(...)</code>, enabling command substitution.</li>
<li>The controller creates a Kubernetes CronJob resource with its container <code>args</code> explicitly configured as <code>/bin/sh -c &lt;malicious_curlCommand&gt;</code>, where <code>malicious_curlCommand</code> now contains the injected arbitrary commands.</li>
<li>The Kubernetes scheduler activates the CronJob, causing the CronJob pod to execute the <code>sh -c</code> command, leading to the execution of arbitrary commands (e.g., <code>id</code>, <code>cat /var/run/secrets/...</code>) within the pod. These pods often run with root privileges.</li>
<li>The created CronJob lacks Kubernetes <code>ownerReferences</code>, allowing it to persist and continue executing its schedule indefinitely, even if the original NuclioFunction or its Deployment is subsequently removed.</li>
<li>The attacker leverages this RCE to exfiltrate sensitive data (such as Kubernetes service account tokens), establish a persistent foothold, or further compromise the Kubernetes cluster.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability grants remote attackers persistent remote code execution within the target Kubernetes cluster, typically with root privileges. This allows for arbitrary command execution, sensitive data exfiltration (e.g., Kubernetes service account tokens), and potential for broader compromise of cluster resources. The lack of <code>ownerReferences</code> on the created CronJobs means that even if a compromised NuclioFunction is deleted, the malicious CronJob can continue to run indefinitely, ensuring persistence for the attacker. The vulnerability carries a CVSS 3.1 score of 9.9 (Critical), indicating severe consequences for confidentiality, integrity, and availability of the affected system.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li><strong>Patch CVE-XXXX-YYYY immediately</strong>: Upgrade Nuclio to a patched version once available. Monitor official Nuclio channels for security updates addressing GHSA-v5px-423j-pf7p.</li>
<li><strong>Deploy the Sigma rules in this brief</strong>: Implement the <code>Detect Nuclio CronJob RCE via Header Key Injection</code> and <code>Detect Nuclio CronJob RCE via Body Command Substitution</code> rules to identify attempts at exploiting this vulnerability at the Kubernetes API server audit log level.</li>
<li><strong>Review Kubernetes audit logs</strong>: Actively monitor for suspicious <code>create</code>, <code>update</code>, or <code>patch</code> events on <code>batch/v1/cronjobs</code> resources, especially those originating from the Nuclio controller, for <code>args</code> fields containing the patterns identified in the IOCs.</li>
<li><strong>Restrict NuclioFunction deployment permissions</strong>: Limit permissions to create or modify <code>NuclioFunction</code> resources to trusted administrators, reducing the attack surface for this vulnerability.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>remote-code-execution</category><category>kubernetes</category><category>cloud-native</category><category>command-injection</category><category>persistence</category><category>critical-vulnerability</category><category>ghsa</category></item></channel></rss>