{"description":"Trending threats, MITRE ATT\u0026CK coverage, and detection metadata — refreshed continuously.","feed_url":"https://feed.craftedsignal.io/vendors/argo-project/","home_page_url":"https://feed.craftedsignal.io/","items":[{"_cs_actors":[],"_cs_cves":[],"_cs_exploited":false,"_cs_products":["Argo Workflows"],"_cs_severities":["medium"],"_cs_tags":["argo-workflows","denial-of-service","kubernetes"],"_cs_type":"advisory","_cs_vendors":["Argo Project"],"content_html":"\u003cp\u003eArgo Workflows is vulnerable to a denial-of-service attack where a malformed \u003ccode\u003eworkflows.argoproj.io/pod-gc-strategy\u003c/code\u003e annotation within a workflow pod can crash the Argo Workflows controller. This vulnerability stems from an unchecked array index in the \u003ccode\u003epodGCFromPod()\u003c/code\u003e function. When the annotation value lacks a \u0026ldquo;/\u0026rdquo;, the \u003ccode\u003estrings.Split\u003c/code\u003e function returns an array of length 1, leading to an out-of-bounds access when trying to retrieve the second element. The resulting panic occurs outside the controller\u0026rsquo;s recovery scope, causing the entire controller process to terminate. The affected versions include 3.6.5 through 3.6.19, 3.7.0-rc1 through 3.7.12, and 4.0.0-rc1 through 4.0.3. This vulnerability was introduced in commit \u003ca href=\"https://github.com/argoproj/argo-workflows/issues/14129\"\u003e#14129\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAn attacker crafts a malicious Argo Workflow YAML file.\u003c/li\u003e\n\u003cli\u003eThe YAML includes a \u003ccode\u003epodMetadata\u003c/code\u003e section defining annotations for the workflow pod.\u003c/li\u003e\n\u003cli\u003eWithin the annotations, the \u003ccode\u003eworkflows.argoproj.io/pod-gc-strategy\u003c/code\u003e key is set to a value that does not contain a forward slash (\u0026quot;/\u0026quot;), such as \u0026ldquo;NoSlash\u0026rdquo;.\u003c/li\u003e\n\u003cli\u003eThe attacker submits the crafted workflow to the Argo Workflows controller using \u003ccode\u003ekubectl apply -n argo -f malicious-workflow.yaml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe Argo Workflows controller receives the workflow definition and creates a corresponding pod based on the specification.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003epodGCFromPod()\u003c/code\u003e function in \u003ccode\u003e/workflow/controller/pod/controller.go\u003c/code\u003e attempts to parse the \u003ccode\u003eworkflows.argoproj.io/pod-gc-strategy\u003c/code\u003e annotation.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003estrings.Split\u003c/code\u003e function splits the annotation value, resulting in an array with only one element.\u003c/li\u003e\n\u003cli\u003eThe code attempts to access \u003ccode\u003eparts[1]\u003c/code\u003e, causing a panic due to an out-of-bounds array access and crashes the controller, resulting in a denial-of-service.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eSuccessful exploitation of this vulnerability allows any user with the ability to submit workflows to crash the Argo Workflows controller. The controller will enter a crash loop, rendering the entire Argo Workflows deployment unavailable. Since the controller is responsible for managing and executing workflows, all workflow processing is halted, leading to a denial-of-service condition. This can severely impact organizations relying on Argo Workflows for their CI/CD pipelines or other automated tasks. The attacker requires only \u003ccode\u003ecreate\u003c/code\u003e permission on Workflow resources to execute this attack.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to a patched version of Argo Workflows (v3.6.4 or earlier, v3.6.20+, v3.7.13+, or v4.0.4+) to remediate the vulnerability as described in \u003ca href=\"https://github.com/advisories/GHSA-5jv8-h7qh-rf5p\"\u003eGHSA-5jv8-h7qh-rf5p\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImplement input validation on workflow submissions to reject workflows with malformed \u003ccode\u003eworkflows.argoproj.io/pod-gc-strategy\u003c/code\u003e annotations. See the PoC workflow example provided in \u003ca href=\"https://github.com/advisories/GHSA-5jv8-h7qh-rf5p\"\u003eGHSA-5jv8-h7qh-rf5p\u003c/a\u003e for examples of vulnerable annotation values.\u003c/li\u003e\n\u003cli\u003eDeploy the Sigma rule \u003ccode\u003eDetect Argo Workflows Malformed Pod GC Annotation\u003c/code\u003e to detect workflow submissions containing potentially malicious annotations.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-04-23T21:39:21Z","date_published":"2026-04-23T21:39:21Z","id":"/briefs/2024-01-09-argo-workflow-dos/","summary":"A malformed `workflows.argoproj.io/pod-gc-strategy` annotation in an Argo Workflow pod can trigger an unchecked array index in the `podGCFromPod()` function, leading to a controller-wide panic and denial-of-service.","title":"Argo Workflows Controller Denial-of-Service via Malformed Pod Annotation","url":"https://feed.craftedsignal.io/briefs/2024-01-09-argo-workflow-dos/"}],"language":"en","title":"CraftedSignal Threat Feed — Argo Project","version":"https://jsonfeed.org/version/1.1"}