Kargo has an Authorization Bypass Vulnerability in Batch Resource Creation API Endpoints
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 1.9.3, 1.8.11, 1.7.8
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: total
Summary
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.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
Affected versions
- akuity kargo
From 1.9.0-rc.1 · fixed in 1.9.3; From 1.8.0-rc.1 · fixed in 1.8.11; From 1.7.0 · fixed in 1.7.8
- github.com/akuity/kargoGo
From 1.7.0 · fixed in 1.7.8; From 1.8.0-rc.1 · fixed in 1.8.11; From 1.9.0-rc.1 · fixed in 1.9.3
- github.com/akuity/kargoGo
From 1.9.0-rc.1 · fixed in 1.9.3
- github.com/akuity/kargoGo
From 1.8.0-rc.1 · fixed in 1.8.11
- github.com/akuity/kargoGo
From 1.7.0 · fixed in 1.7.8