ServiceAccount token disclosure via Azure IPAM CNI plugin logs
When Calico is configured with the Azure IPAM plugin, the Calico CNI binary mutates the incoming CNI configuration to attach subnet information before delegating to the IPAM plugin. After mutating, the Azure IPAM helper logs the entire unmarshaled configuration map (stdinData) at INFO level to /var/log/calico/cni/cni.log on every CNI ADD and DEL invocation — once per pod scheduled or terminated on the node. When the cluster is deployed using token-based Kubernetes authentication, this log entry contains the ServiceAccount token, client key, and certificate authority in plaintext. Any principal with read access to /var/log/calico/cni/cni.log on a node can read these logs and extract the credentials, which grant cluster-wide Calico networking admin privileges.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-41185
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 17:59 UTC · Revision 1
Source evidence
ServiceAccount token disclosure via Azure IPAM CNI plugin logs
core-osv · Original sourcePublished 28 May 2026, 15:47 UTC
When Calico is configured with the Azure IPAM plugin, the Calico CNI binary mutates the incoming CNI configuration to attach subnet information before delegating to the IPAM plugin. After mutating, the Azure IPAM helper logs the entire unmarshaled configuration map (stdinData) at INFO level to /var/log/calico/cni/cni.log on every CNI ADD and DEL invocation — once per pod scheduled or terminated on the node. When the cluster is deployed using token-based Kubernetes authentication, this log entry contains the ServiceAccount token, client key, and certificate authority in plaintext. Any principal with read access to /var/log/calico/cni/cni.log on a node can read these logs and extract the credentials, which grant cluster-wide Calico networking admin privileges.
osv:CVE-2026-41185
Complete source record
{
"id": "028666cb7e03be3b77e6a6340930117a25a6e8c34968059f3b9a2ab948d0a0d6",
"url": "https://osv.dev/vulnerability/CVE-2026-41185",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "ServiceAccount token disclosure via Azure IPAM CNI plugin logs",
"summary": "When Calico is configured with the Azure IPAM plugin, the Calico CNI binary mutates the incoming CNI configuration to attach subnet information before delegating to the IPAM plugin. After mutating, the Azure IPAM helper logs the entire unmarshaled configuration map (stdinData) at INFO level to /var/log/calico/cni/cni.log on every CNI ADD and DEL invocation — once per pod scheduled or terminated on the node. When the cluster is deployed using token-based Kubernetes authentication, this log entry contains the ServiceAccount token, client key, and certificate authority in plaintext. Any principal with read access to /var/log/calico/cni/cni.log on a node can read these logs and extract the credentials, which grant cluster-wide Calico networking admin privileges.",
"evidence": "osv:CVE-2026-41185",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-41185",
"aliases": [
"CVE-2026-41185",
"GHSA-m67g-87rx-v42c",
"GO-2026-5891"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:L/SI:L/SA:L"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/projectcalico/calico",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "eb1cf57823a1dd8d25c48b82fd023ea9e3e17996"
},
{
"introduced": "a86e41d021c4c60e1f73d8dce396fe249d708cc7"
},
{
"fixed": "1be7791d130f7756981f67cce23b260be0330aa0"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:tigera:calico:*:*:*:*:open_source:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "3.32.0"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:tigera:calico:*:*:*:*:enterprise:*:*:*",
"range": [
{
"introduced": "3.22.0"
},
{
"fixed": "3.22.3"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v3.32.0-0.dev",
"v3.31.0-0.dev",
"v3.30.0-0.dev",
"v3.29.0-0.dev",
"v3.28.0-0.dev",
"v3.27.0-0.dev",
"v3.25.0-0.dev",
"v3.22.3-0.dev",
"v3.24.0-0.dev",
"v3.18.5-calico",
"v3.18.5",
"v3.17.5-calico",
"v3.17.5",
"v3.18.1-calico",
"v3.18.1",
"v3.16.5-calico",
"v3.16.5",
"v3.16.0-calico",
"v3.16.0",
"v3.11.1-calico",
"v3.11.1",
"v3.9.4-calico",
"v3.9.4",
"v3.8.5-calico",
"v3.8.5",
"v3.10.2-calico",
"v3.10.2",
"v3.10.0-calico",
"v3.10.0",
"v3.9.0-calico",
"v3.9.0",
"v3.3.7-calico",
"v3.3.7",
"v3.2.8-calico",
"v3.2.8",
"v3.1.7-calico",
"v3.1.7",
"v3.0.12-calico",
"v3.0.12",
"v3.2.0-calico",
"v3.2.0",
"v3.0.1-calico",
"v3.0.1",
"v3.0.0-calico",
"v3.0.0",
"v2.6.2-calico",
"v2.6.2",
"v3.0.0-alpha1-rc1-calico",
"v3.0.0-alpha1-rc1",
"v2.6.0-calico",
"v2.6.0",
"v2.6.0-rc2-calico",
"v2.6.0-rc2",
"v2.6.0-rc1-calico",
"v2.6.0-rc1",
"v2.5.0-calico",
"v2.5.0",
"v2.5.0-rc2-calico",
"v2.5.0-rc2"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-41185.json"
}
}
],
"modified": "2026-10-28T02:30:30.856039650Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41185.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-41185",
"https://www.tigera.io/security-bulletins/tta-2026-002/",
"https://github.com/projectcalico/calico/pull/12502",
"https://github.com/projectcalico/calico/pull/12526",
"https://github.com/projectcalico/calico/pull/12527"
],
"provider_metadata": {
"cwe_ids": [
"CWE-532"
],
"cna_assigner": "Tigera",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"fixed": "3.21.7"
},
{
"fixed": "22.4.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41185.json"
}
},
"related_cves": [
{
"value": "CVE-2026-41185",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 498108,
"published_at": "2026-05-28T15:47:42.791+00:00"
}