CVE-2026-54526
### Summary The allow-list fix for CVE-2026-31892 (GHSA-3wf5-g532-rcrr), and its follow-up coverage of `hostNetwork`/`securityContext`/`serviceAccountName` in GHSA-3775-99mw-8rp4, is incomplete. `workflow/util/merge.go` `ValidateUserOverrides` / `SanitizeUserWorkflowSpec` walk only the top-level fields of `WorkflowSpec` via reflection. `WorkflowSpec.ArtifactGC` is allow-listed because admins want users to configure artifact garbage collection. The struct behind that field, `WorkflowLevelArtifactGC`, has a `PodSpecPatch` sub-field whose contents flow unmodified into `util.ApplyPodSpecPatch` on the artifact-GC pod - the same sink the original fix closed for `WorkflowSpec.PodSpecPatch`. A user submitting a Workflow under `templateReferencing: Strict` or `Secure` can therefore still inject an arbitrary strategic merge patch into the artifact-GC pod (hostPath volumes, `privileged: true`, arbitrary image and command, `hostNetwork: true`), defeating the stated purpose of Strict/Secure reference mode. ### Details Locations in `main` at `4d9f021` (HEAD 2026-04-23): Allow-list and reflection scope - `workflow/util/merge.go:19-60`: ```go var allowedUserOverrideFields = map[string]bool{ "Arguments": true, "Entrypoint": true, ... "ArtifactGC": true, // <-- allow-listed wholesale } func ValidateUserOverrides(userSpec *wfv1.WorkflowSpec) error { v := reflect.ValueOf(userSpec).Elem() t := v.Type() zero := reflect.New(t).Elem() for i := 0; i < t.NumField(); i++ { fieldName := t.Field(i).Name if allowedUserOverrideFields[fieldName] { continue // <-- sub-fields are not walked } if !reflect.DeepEqual(v.Field(i).Interface(), zero.Field(i).Interface()) { violations = append(violations, fieldName) } } ... } ``` The allow-listed type - `pkg/apis/workflow/v1alpha1/workflow_types.go:1207-1217`: ```go type WorkflowLevelArtifactGC
Properties
- ghsa_id
- GHSA-48p8-g2fx-3wwm
- severity
- high
- summary
- Argo Workflows: ArtifactGC.PodSpecPatch bypasses Strict/Secure template reference allow-list (Incomplete fix for CVE-2026-31892)
- cve_id
- CVE-2026-54526
- is_ghsa_only
- false
- ghsa_published
- 2026-08-13T14:16:09Z
- source_url
- https://github.com/advisories/GHSA-48p8-g2fx-3wwm
- ghsa_updated
- 2026-08-13T14:16:12Z
Related Entities (8)
VULNERABLE_TO (3)
AFFECTS (3)
HAS_WEAKNESS (1)
REPORTED_BY (1)
Explore deeper with Ninja Signal's threat intelligence graph