Kyverno APICall SSRF Vulnerability Leading to Multi-Tenant Isolation Breach
### Summary Kyverno's APICall feature contains a Server-Side Request Forgery (SSRF) vulnerability that allows users with Policy creation permissions to access arbitrary internal resources through Kyverno's high-privilege ServiceAccount. In multi-tenant Kubernetes environments, this constitutes a classic Confused Deputy problem: low-privilege tenants can steal sensitive data from other tenants (such as database passwords and API keys) and cloud platform IAM credentials, completely breaking tenant isolation. This vulnerability does not require cluster-admin privileges and can be exploited with only namespace-level Policy creation permissions. ### Details #### Vulnerability Mechanism Kyverno's APICall feature allows Policies to fetch external data via HTTP requests. This feature does not validate target URLs when executing HTTP requests, leading to an SSRF vulnerability. **Source Point - User-Controlled URL** File: `api/kyverno/v1/common_types.go`, lines 247-250 ```go type ServiceCall struct { // URL is the JSON web service URL URL string `json:"url"` // User-controlled, no validation Headers []HTTPHeader `json:"headers,omitempty"` CABundle string `json:"caBundle,omitempty"` } ``` The URL field is completely controlled by users through Policy configuration, with no validation mechanism to restrict target addresses. **Sink Point - HTTP Request Execution** File: `pkg/engine/apicall/executor.go`, lines 65-110 ```go func (a *executor) executeServiceCall(ctx context.Context, apiCall
- Products
- github.com/kyverno/kyverno
- Affected versions
- Not specified
- Fixed versions
- 1.16.2
- CVEs
- CVE-2026-84199
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 30 Oct 2026, 12:06 UTC · Revision 2
Source evidence
Kyverno APICall SSRF Vulnerability Leading to Multi-Tenant Isolation Breach
core-osv · Original sourcePublished 14 Apr 2026, 20:06 UTC
### Summary Kyverno's APICall feature contains a Server-Side Request Forgery (SSRF) vulnerability that allows users with Policy creation permissions to access arbitrary internal resources through Kyverno's high-privilege ServiceAccount. In multi-tenant Kubernetes environments, this constitutes a classic Confused Deputy problem: low-privilege tenants can steal sensitive data from other tenants (such as database passwords and API keys) and cloud platform IAM credentials, completely breaking tenant isolation. This vulnerability does not require cluster-admin privileges and can be exploited with only namespace-level Policy creation permissions. ### Details #### Vulnerability Mechanism Kyverno's APICall feature allows Policies to fetch external data via HTTP requests. This feature does not validate target URLs when executing HTTP requests, leading to an SSRF vulnerability. **Source Point - User-Controlled URL** File: `api/kyverno/v1/common_types.go`, lines 247-250 ```go type ServiceCall struct { // URL is the JSON web service URL URL string `json:"url"` // User-controlled, no validation Headers []HTTPHeader `json:"headers,omitempty"` CABundle string `json:"caBundle,omitempty"` } ``` The URL field is completely controlled by users through Policy configuration, with no validation mechanism to restrict target addresses. **Sink Point - HTTP Request Execution** File: `pkg/engine/apicall/executor.go`, lines 65-110 ```go func (a *executor) executeServiceCall(ctx context.Context, apiCall
osv:GHSA-fmqp-4wfc-w3v7
github.com/kyverno/kyverno
Fixed versions: 1.16.2
Complete source record
{
"id": "2b185387cda73e45e413bc8cb7aa5a334f3abc9d6c8dc3d3c1c59e4274a40585",
"url": "https://osv.dev/vulnerability/GHSA-fmqp-4wfc-w3v7",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Kyverno APICall SSRF Vulnerability Leading to Multi-Tenant Isolation Breach",
"summary": "### Summary Kyverno's APICall feature contains a Server-Side Request Forgery (SSRF) vulnerability that allows users with Policy creation permissions to access arbitrary internal resources through Kyverno's high-privilege ServiceAccount. In multi-tenant Kubernetes environments, this constitutes a classic Confused Deputy problem: low-privilege tenants can steal sensitive data from other tenants (such as database passwords and API keys) and cloud platform IAM credentials, completely breaking tenant isolation. This vulnerability does not require cluster-admin privileges and can be exploited with only namespace-level Policy creation permissions. ### Details #### Vulnerability Mechanism Kyverno's APICall feature allows Policies to fetch external data via HTTP requests. This feature does not validate target URLs when executing HTTP requests, leading to an SSRF vulnerability. **Source Point - User-Controlled URL** File: `api/kyverno/v1/common_types.go`, lines 247-250 ```go type ServiceCall struct { // URL is the JSON web service URL URL string `json:\"url\"` // User-controlled, no validation Headers []HTTPHeader `json:\"headers,omitempty\"` CABundle string `json:\"caBundle,omitempty\"` } ``` The URL field is completely controlled by users through Policy configuration, with no validation mechanism to restrict target addresses. **Sink Point - HTTP Request Execution** File: `pkg/engine/apicall/executor.go`, lines 65-110 ```go func (a *executor) executeServiceCall(ctx context.Context, apiCall ",
"evidence": "osv:GHSA-fmqp-4wfc-w3v7",
"products": [
{
"name": {
"value": "github.com/kyverno/kyverno",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "1.16.2",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
}
],
"severity": "high",
"structured": {
"id": "GHSA-fmqp-4wfc-w3v7",
"aliases": [
"BIT-kyverno-2026-84199",
"CVE-2026-84199",
"GHSA-fmqp-4wfc-w3v7",
"GO-2026-5371"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "1.16.2"
}
]
}
],
"package": {
"name": "github.com/kyverno/kyverno",
"purl": "pkg:golang/github.com/kyverno/kyverno",
"ecosystem": "Go"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-fmqp-4wfc-w3v7/GHSA-fmqp-4wfc-w3v7.json"
}
}
],
"modified": "2026-10-14T11:11:05.346356935Z",
"provider": "osv",
"references": [
"https://github.com/kyverno/kyverno/security/advisories/GHSA-fmqp-4wfc-w3v7",
"https://github.com/kyverno/kyverno"
],
"provider_metadata": {
"cwe_ids": [
"CWE-918"
],
"severity": "HIGH",
"github_reviewed": true,
"nvd_published_at": null,
"github_reviewed_at": "2026-04-14T20:06:09Z"
}
},
"related_cves": [
{
"value": "CVE-2026-84199",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": "/database_specific/severity"
},
"source_id": "core-osv",
"document_id": 316249,
"published_at": "2026-04-14T20:06:09+00:00"
}Kyverno APICall SSRF Vulnerability Leading to Multi-Tenant Isolation Breach in github.com/kyverno/kyverno
core-osv · Original sourcePublished 25 Jun 2026, 18:43 UTC
Kyverno APICall SSRF Vulnerability Leading to Multi-Tenant Isolation Breach in github.com/kyverno/kyverno
osv:GO-2026-5371
github.com/kyverno/kyverno
Fixed versions: 1.16.2
Complete source record
{
"id": "073fa1eb7e909bcb420920091a9ace65056e627cb391b5a4238a682639974d75",
"url": "https://osv.dev/vulnerability/GO-2026-5371",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Kyverno APICall SSRF Vulnerability Leading to Multi-Tenant Isolation Breach in github.com/kyverno/kyverno",
"summary": "Kyverno APICall SSRF Vulnerability Leading to Multi-Tenant Isolation Breach in github.com/kyverno/kyverno",
"evidence": "osv:GO-2026-5371",
"products": [
{
"name": {
"value": "github.com/kyverno/kyverno",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "1.16.2",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "GO-2026-5371",
"aliases": [
"BIT-kyverno-2026-84199",
"CVE-2026-84199",
"GHSA-fmqp-4wfc-w3v7",
"GO-2026-5371"
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "1.16.2"
}
]
}
],
"package": {
"name": "github.com/kyverno/kyverno",
"purl": "pkg:golang/github.com/kyverno/kyverno",
"ecosystem": "Go"
},
"database_specific": {
"source": "https://vuln.go.dev/ID/GO-2026-5371.json"
},
"ecosystem_specific": {}
}
],
"modified": "2026-10-14T11:11:05.346356935Z",
"provider": "osv",
"references": [
"https://github.com/kyverno/kyverno/security/advisories/GHSA-fmqp-4wfc-w3v7"
],
"provider_metadata": {
"url": "https://pkg.go.dev/vuln/GO-2026-5371",
"review_status": "UNREVIEWED"
}
},
"related_cves": [
{
"value": "CVE-2026-84199",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 316250,
"published_at": "2026-06-25T18:43:19+00:00"
}