<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-05T08:32:03.540880+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/bit-kyverno-2026-41323</id>
    <title>BIT-kyverno-2026-41323 — Kyverno: ServiceAccount token leaked to external servers via apiCall service URL</title>
    <updated>2026-10-05T08:32:03.604091+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Bitnami: kyverno</p>
<p>Kyverno is a policy engine designed for cloud native platform engineering teams. Prior to versions 1.18.0, 1.17.2, and 1.16.4, Kyverno's apiCall feature in ClusterPolicy automatically attaches the admission controller's ServiceAccount token to outgoing HTTP requests. The service URL has no validation — it can point anywhere, including attacker-controlled servers. Since the admission controller SA has permissions to patch webhook configurations, a stolen token leads to full cluster compromise. Versions 1.18.0, 1.17.2, and 1.16.4 patch the issue.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/bit-kyverno-2026-41323"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/euvd-2026-292864</id>
    <title>EUVD-2026-292864</title>
    <updated>2026-10-05T08:32:03.604156+00:00</updated>
    <content>EUVD-2026-292864</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-292864"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-41323</id>
    <title>fkie_cve-2026-41323</title>
    <updated>2026-10-05T08:32:03.604173+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>Kyverno is a policy engine designed for cloud native platform engineering teams. Prior to versions 1.18.0-rc1, 1.17.2-rc1, and 1.16.4, Kyverno's apiCall feature in ClusterPolicy automatically attaches the admission controller's ServiceAccount token to outgoing HTTP requests. The service URL has no validation — it can point anywhere, including attacker-controlled servers. Since the admission controller SA has permissions to patch webhook configurations, a stolen token leads to full cluster compromise. Versions 1.18.0-rc1, 1.17.2-rc1, and 1.16.4 patch the issue.</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-41323"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-f9g8-6ppc-pqq4</id>
    <title>GHSA-f9g8-6ppc-pqq4 — Kyverno: ServiceAccount token leaked to external servers via apiCall service URL</title>
    <updated>2026-10-05T08:32:03.604201+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Go: github.com/kyverno/kyverno</p>
<p>## Summary</p>
<p>Kyverno's apiCall feature in ClusterPolicy automatically attaches the admission controller's ServiceAccount token to outgoing HTTP requests. The service URL has no validation — it can point anywhere, including attacker-controlled servers. Since the admission controller SA has permissions to patch webhook configurations, a stolen token leads to full cluster compromise.</p>
<p>## Affected version</p>
<p>Tested on Kyverno v1.17.1 (Helm chart default installation). Likely affects all versions with apiCall service support.</p>
<p>## Details</p>
<p>There are two issues that combine into one attack chain.</p>
<p>The first is in `pkg/engine/apicall/executor.go` around line 138. The service URL from the policy spec goes straight into `http.NewRequestWithContext()`:</p>
<p>```go
req, err := http.NewRequestWithContext(ctx, string(apiCall.Method), apiCall.Service.URL, data)
```</p>
<p>No scheme check, no IP restriction, no allowlist. The policy validation webhook (`pkg/validation/policy/validate.go`) only looks at JMESPath syntax.</p>
<p>The second is at lines 155-159 of the same file. If the request doesn't already have an Authorization header, Kyverno reads its own SA token and injects it:</p>
<p>```go
if req.Header.Get("Authorization") == "" {
    token := a.getToken()
    req.Header.Add("Authorization", "Bearer "+token)
}
```</p>
<p>The token is the admission controller's long-lived SA token from `/var/run/secrets/kubernetes.io/serviceaccount/token`. With the default Helm install, this SA (`kyverno-admission-controller`) can read…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-f9g8-6ppc-pqq4"/>
  </entry>
</feed>
