VYPR
Critical severityNVD Advisory· Published Feb 20, 2026· Updated Feb 24, 2026

Kargo has an Authorization Bypass Vulnerability in Batch Resource Creation API Endpoints

CVE-2026-27112

Description

Kargo manages and automates the promotion of software artifacts. From 1.7.0 to before v1.7.8, v1.8.11, and v1.9.3, the batch resource creation endpoints of both Kargo's legacy gRPC API and newer REST API accept multi-document YAML payloads. 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 achievable even without this. This vulnerability is fixed in v1.7.8, v1.8.11, and v1.9.3.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
github.com/akuity/kargoGo
>= 1.9.0-rc.1, < 1.9.31.9.3
github.com/akuity/kargoGo
>= 1.8.0-rc.1, < 1.8.111.8.11
github.com/akuity/kargoGo
>= 1.7.0, < 1.7.81.7.8

Affected products

1

Patches

1
155c6852ffbf

Merge commit from fork

https://github.com/akuity/kargoKent RancourtFeb 17, 2026via ghsa
3 files changed · +4 4
  • pkg/server/create_or_update_resource_v1alpha1.go+1 1 modified
    @@ -56,7 +56,7 @@ func (s *server) CreateOrUpdateResource(
     		}
     		// If we just created a Project successfully, keep track of this Project
     		// being one that was created in the course of this API call.
    -		if result.CreatedResourceManifest != nil && resource.GroupVersionKind() == projectGVK {
    +		if err == nil && result.CreatedResourceManifest != nil && resource.GroupVersionKind() == projectGVK {
     			createdProjects[resource.GetName()] = struct{}{}
     		}
     		// Convert to protobuf result
    
  • pkg/server/create_resource_v1alpha1.go+2 2 modified
    @@ -64,7 +64,7 @@ func (s *server) CreateResource(
     		}
     		// If we just created a Project successfully, keep track of this Project
     		// being one that was created in the course of this API call.
    -		if resource.GroupVersionKind() == projectGVK {
    +		if err == nil && resource.GroupVersionKind() == projectGVK {
     			createdProjects[resource.GetName()] = struct{}{}
     		}
     		// Convert to protobuf result
    @@ -158,7 +158,7 @@ func (s *server) createResources(c *gin.Context) {
     		}
     		// If we just created a Project successfully, keep track of this Project
     		// being one that was created in the course of this API call.
    -		if resource.GroupVersionKind() == projectGVK {
    +		if err == nil && resource.GroupVersionKind() == projectGVK {
     			createdProjects[resource.GetName()] = struct{}{}
     		}
     		results = append(results, result)
    
  • pkg/server/update_resource_v1alpha1.go+1 1 modified
    @@ -133,7 +133,7 @@ func (s *server) updateResources(c *gin.Context) {
     		}
     		// If we just created a Project successfully, keep track of this Project
     		// being one that was created in the course of this API call.
    -		if result.CreatedResourceManifest != nil && resource.GroupVersionKind() == projectGVK {
    +		if err == nil && result.CreatedResourceManifest != nil && resource.GroupVersionKind() == projectGVK {
     			createdProjects[resource.GetName()] = struct{}{}
     		}
     		results = append(results, result)
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

4

News mentions

0

No linked articles in our index yet.