CVE-2026-24748: Github.com/akuity/kargo Remote Code Execution Vulnerability

MODERATE
Advisory Identifier: GHSA-w5wv-wvrp-v5m5
CWE-863
Published
Advisory Summary

CVE-2026-24748 is a MODERATE remote code execution vulnerability (CWE-863: Incorrect Authorization) affecting Github.com/akuity/kargo libraries in the Go ecosystem. The issue involves kargo's `getconfig()` and `refreshresource()` api endpoints allow unauthenticated access. Remediation is available by upgrading affected packages to version 1.6.3, 1.7.7, 1.8.7.

CVE-2026-24748 at a Glance

CVE Identifier CVE-2026-24748
GHSA Identifier GHSA-w5wv-wvrp-v5m5
Severity MODERATE
CVSS v3.1 Base Score N/A
CWE Classification CWE-863: Incorrect Authorization
Affected Product Github.com/akuity/kargo
Package Ecosystem Go
Published Date
Last Updated

How to Fix CVE-2026-24748

To remediate this vulnerability, upgrade all affected Github.com/akuity/kargo dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/akuity/kargo fixed: 1.6.3
Upgrade github.com/akuity/kargo to 1.6.3
github.com/akuity/kargo fixed: 1.7.7
Upgrade github.com/akuity/kargo to 1.7.7
github.com/akuity/kargo fixed: 1.8.7
Upgrade github.com/akuity/kargo to 1.8.7
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/akuity/kargo

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-24748, inspect your project dependencies for Github.com/akuity/kargo:

inspect dependencies for github.com/akuity/kargo

Analyze the terminal output to locate any version of Github.com/akuity/kargo in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.6.3), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-863: Incorrect Authorization, where the product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. In Github.com/akuity/kargo, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Impact A bug was found with authentication checks on the `GetConfig()` API endpoint. This allowed unauthenticated users to access this endpoint by specifying an `Authorization` header with any non-empty `Bearer` token value, regardless of validity. This vulnerability did allow for exfiltration of configuration data such as endpoints for connected Argo CD clusters. This data could allow an attacker to enumerate cluster URLs and namespaces for use in subsequent attacks. Additionally, the same bug affected the `RefreshResource` endpoint. This endpoint does not lead to any information disclosure, but could be used by an unauthenticated attacker to perform a denial-of-service style attack against the Kargo API. `RefreshResource` sets an annotation on specific Kubernetes resources to trigger reconciliations. If run on a constant loop, this could also slow down legitimate requests to the Kubernetes API server. This vulnerability was identified by security researchers, and there are no known reports of exploitation in the wild. ### Patches This problem has been patched in the previous 3 versions of Kargo. Based on our information, almost all users are on one of these versions. If for some reason you cannot upgrade from an earlier version, please reach out to us. ### Workarounds There are no workarounds for this issue, so it is highly recommended to upgrade at the earliest possible ### Additional details This issue was caused by fallback logic in token authentication. The majority of Kargo endpoints are backed by Kubernetes objects, and for these endpoints, unrecognized token types are passed to the Kubernetes API for validation. However, the affected endpoints do not use Kubernetes or used an internal client not subject to authentication, so unrecognized tokens had no validation fallback. As a result, any request with a non-empty `Bearer` token in the `Authorization` header was incorrectly treated as authorized.

CVE-2026-24748 Affected Github.com/akuity/kargo Versions

3 component(s)
Fixed Versions:
1.6.31.7.71.8.7
Product / Package Ecosystem Affected Versions Fixed Version
github.com/akuity/kargo
Go
< 1.6.3
1.6.3
github.com/akuity/kargo
Go
≥ 1.7.0-rc.1
< 1.7.7
1.7.7
github.com/akuity/kargo
Go
≥ 1.8.0-rc.1
< 1.8.7
1.8.7

References

Frequently Asked Questions

What is CVE-2026-24748?
CVE-2026-24748 is a security vulnerability in Github.com/akuity/kargo involving Kargo's `GetConfig()` and `RefreshResource()` API endpoints allow unauthenticated access under CWE-863: Incorrect Authorization.
Which Github.com/akuity/kargo versions are affected?
Affected versions include releases prior to 1.6.3, 1.7.7, 1.8.7 across affected packages: github.com/akuity/kargo.
What version fixes CVE-2026-24748?
Upgrading to 1.6.3, 1.7.7, 1.8.7 (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/akuity/kargo affected?
Yes, github.com/akuity/kargo is affected in releases prior to 1.6.3, 1.7.7, 1.8.7. Upgrade your dependency to 1.6.3, 1.7.7, 1.8.7 or later.
What CWE is associated with CVE-2026-24748?
CVE-2026-24748 is classified under CWE-863: Incorrect Authorization (The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check.).
How can I check Go dependencies for CVE-2026-24748?
Run the dependency tree command: 'inspect dependencies for github.com/akuity/kargo'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-w5wv-wvrp-v5m5",
  "modified" : "2026-01-29T03:43:04Z",
  "published" : "2026-01-27T22:15:28Z",
  "aliases" : [ "CVE-2026-24748" ],
  "summary" : "Kargo's `GetConfig()` and `RefreshResource()` API endpoints allow unauthenticated access",
  "details" : "### Impact\n\nA bug was found with authentication checks on the `GetConfig()` API endpoint. This allowed unauthenticated users to access this endpoint by specifying an `Authorization` header with any non-empty `Bearer` token value, regardless of validity.  This vulnerability did allow for exfiltration of configuration data such as endpoints for connected Argo CD clusters. This data could allow an attacker to enumerate cluster URLs and namespaces for use in subsequent attacks.\n\nAdditionally, the same bug affected the `RefreshResource` endpoint. This endpoint does not lead to any information disclosure, but could be used by an unauthenticated attacker to perform a denial-of-service style attack against the Kargo API. `RefreshResource` sets an annotation on specific Kubernetes resources to trigger reconciliations. If run on a constant loop, this could also slow down legitimate requests to the Kubernetes API server.\n\nThis vulnerability was identified by security researchers, and there are no known reports of exploitation in the wild.\n\n### Patches\n\nThis problem has been patched in the previous 3 versions of Kargo. Based on our information, almost all users are on one of these versions. If for some reason you cannot upgrade from an earlier version, please reach out to us.\n\n### Workarounds\n\nThere are no workarounds for this issue, so it is highly recommended to upgrade at the earliest possible\n\n### Additional details\n\nThis issue was caused by fallback logic in token authentication. The majority of Kargo endpoints are backed by Kubernetes objects, and for these endpoints, unrecognized token types are passed to the Kubernetes API for validation. However, the affected endpoints do not use Kubernetes or used an internal client not subject to authentication, so unrecognized tokens had no validation fallback. As a result, any request with a non-empty `Bearer` token in the `Authorization` header was incorrectly treated as authorized.",
  "severity" : [ {
    "type" : "CVSS_V4",
    "score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:L"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/akuity/kargo"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.6.3"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/akuity/kargo"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.7.0-rc.1"
      }, {
        "fixed" : "1.7.7"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/akuity/kargo"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.8.0-rc.1"
      }, {
        "fixed" : "1.8.7"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/akuity/kargo/security/advisories/GHSA-w5wv-wvrp-v5m5"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-24748"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/akuity/kargo/commit/23646eaefb449a6cc2e76a8033e8a57f71369772"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/akuity/kargo/commit/aa28f81ac15ad871c6eba329fc2f0417a08c39d7"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/akuity/kargo/commit/b3297ace0d3b9e7f7128858c5c4288d77f072b8c"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/akuity/kargo"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-863" ],
    "severity" : "MODERATE",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-01-27T22:15:28Z",
    "nvd_published_at" : "2026-01-27T22:15:56Z"
  }
}