Kargo has an Authorization Bypass Vulnerability in Batch Resource Creation API Endpoints
Date: 2026-02
Affected: go/github.com/akuity/kargo, go/github.com/akuity/kargo, go/github.com/akuity/kargo
Attack vector: rce
Category: vulnerability-disclosure
Severity: Critical
CVE: CVE-2026-27112
CWE: CWE-863

## Summary The batch resource creation endpoints of both Kargo's legacy gRPC API and newer REST API accept multi-document YAML payloads. When either endpoint creates a `Project` resource, creation of subsequent resources from that same payload belonging in that Project's underlying Kubernetes namespace, by design, proceeds using the API server's own permissions. The creator of a new Project automatically becomes its administrator, but those permissions are granted asynchronously by the management controller. The design choice to create the affected resources using the API server's own permissions averts a race and is contextually appropriate. Specially crafted payloads can manifest a bug present in the logic of both endpoints to inject arbitrary resources (of specific types only) into the underlying namespace of an _existing_ Project using the API server's own permissions when that behavior was _not_ intended. Critically, an attacker may exploit this as a vector for elevating their own permissions, which can then be leveraged to achieve remote code execution or secret exfiltration. Exfiltrated artifact repository credentials can be leveraged, in turn, to execute further attacks. In some configurations of the Kargo control plane's underlying Kubernetes cluster, elevated permissions may additionally be leveraged to achieve remote code execution or secret exfiltration using `kubectl`. This can reduce the complexity of the attack, however, worst case scenarios remain entirely


Mitigations:

Architectural layers (MAESTRO):