CVE-2026-41185 (GCVE-0-2026-41185)
Vulnerability from cvelistv5 – Published: 2026-05-28 15:47 – Updated: 2026-05-28 17:03
VLAI
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.
Severity
SSVC
Exploitation: none
Automatable: no
Technical Impact: partial
CISA Coordinator (v2.0.3)
CWE
- CWE-532 - Insertion of sensitive information into log file
Assigner
References
4 references
Impacted products
3 products
| Vendor | Product | Version | |
|---|---|---|---|
| Tigera | Calico |
Affected:
0 , < 3.32.0
(semver)
|
|
| Tigera | Calico Enterprise |
Affected:
0 , < 3.21.7
(semver)
Affected: 3.22.0 , < 3.22.3 (semver) |
|
| Tigera | Calico Cloud |
Affected:
0 , < 22.4.0
(semver)
|
Date Public
2026-05-29 03:59
Credits
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-41185",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-05-28T17:03:45.985275Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-05-28T17:03:54.074Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "affected",
"product": "Calico",
"vendor": "Tigera",
"versions": [
{
"lessThan": "3.32.0",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Calico Enterprise",
"vendor": "Tigera",
"versions": [
{
"lessThan": "3.21.7",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "3.22.3",
"status": "affected",
"version": "3.22.0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Calico Cloud",
"vendor": "Tigera",
"versions": [
{
"lessThan": "22.4.0",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:tigera:calico:*:*:*:*:*:*:*:*",
"versionEndExcluding": "3.32.0",
"versionStartIncluding": "0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
},
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:tigera:calico_enterprise:*:*:*:*:*:*:*:*",
"versionEndExcluding": "3.21.7",
"versionStartIncluding": "0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:tigera:calico_enterprise:*:*:*:*:*:*:*:*",
"versionEndExcluding": "3.22.3",
"versionStartIncluding": "3.22.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
},
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:tigera:calico_cloud:*:*:*:*:*:*:*:*",
"versionEndExcluding": "22.4.0",
"versionStartIncluding": "0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
],
"operator": "OR"
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "Behnam Shobiri"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Behnam Shobiri"
},
{
"lang": "en",
"type": "remediation reviewer",
"value": "Anthony Tam"
},
{
"lang": "en",
"type": "remediation reviewer",
"value": "Matt Dupre"
},
{
"lang": "en",
"type": "remediation verifier",
"value": "Casey Davenport"
}
],
"datePublic": "2026-05-29T03:59:00.000Z",
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cspan\u003eWhen 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 (\u003c/span\u003e\u003cspan\u003estdinData\u003c/span\u003e\u003cspan\u003e) at \u003c/span\u003e\u003cspan\u003eINFO\u003c/span\u003e\u003cspan\u003e level to \u003c/span\u003e\u003cspan\u003e/var/log/calico/cni/cni.log\u003c/span\u003e\u003cspan\u003e on every CNI \u003c/span\u003e\u003cspan\u003eADD\u003c/span\u003e\u003cspan\u003e and \u003c/span\u003e\u003cspan\u003eDEL\u003c/span\u003e\u003cspan\u003e invocation \u2014 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\u0026nbsp; can read these logs and extract the credentials, which grant cluster-wide Calico networking admin privileges.\u003c/span\u003e"
}
],
"value": "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 \u2014 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\u00a0 can read these logs and extract the credentials, which grant cluster-wide Calico networking admin privileges."
}
],
"impacts": [
{
"capecId": "CAPEC-150",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-150 Collect Data from Common Resource Locations"
}
]
}
],
"metrics": [
{
"cvssV4_0": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "NETWORK",
"baseScore": 6,
"baseSeverity": "MEDIUM",
"exploitMaturity": "NOT_DEFINED",
"privilegesRequired": "LOW",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "LOW",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"userInteraction": "NONE",
"valueDensity": "NOT_DEFINED",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "NONE",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-532",
"description": "CWE-532 Insertion of sensitive information into log file",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-05-28T15:47:42.791Z",
"orgId": "e6d453f4-3dae-4941-bcea-9af25f4e824d",
"shortName": "Tigera"
},
"references": [
{
"tags": [
"patch"
],
"url": "https://github.com/projectcalico/calico/pull/12502"
},
{
"tags": [
"patch"
],
"url": "https://github.com/projectcalico/calico/pull/12527"
},
{
"tags": [
"patch"
],
"url": "https://github.com/projectcalico/calico/pull/12526"
},
{
"tags": [
"vendor-advisory"
],
"url": "https://www.tigera.io/security-bulletins/tta-2026-002/"
}
],
"source": {
"discovery": "UNKNOWN"
},
"title": "ServiceAccount token disclosure via Azure IPAM CNI plugin logs",
"x_generator": {
"engine": "Vulnogram 1.0.2"
}
}
},
"cveMetadata": {
"assignerOrgId": "e6d453f4-3dae-4941-bcea-9af25f4e824d",
"assignerShortName": "Tigera",
"cveId": "CVE-2026-41185",
"datePublished": "2026-05-28T15:47:42.791Z",
"dateReserved": "2026-04-17T17:41:35.905Z",
"dateUpdated": "2026-05-28T17:03:54.074Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-41185",
"date": "2026-06-02",
"epss": "0.00042",
"percentile": "0.13207"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-41185\",\"sourceIdentifier\":\"psirt@tigera.io\",\"published\":\"2026-05-28T17:16:22.670\",\"lastModified\":\"2026-05-28T18:55:06.837\",\"vulnStatus\":\"Undergoing Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"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 \u2014 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\u00a0 can read these logs and extract the credentials, which grant cluster-wide Calico networking admin privileges.\"}],\"metrics\":{\"cvssMetricV40\":[{\"source\":\"psirt@tigera.io\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"4.0\",\"vectorString\":\"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X\",\"baseScore\":6.0,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"attackRequirements\":\"PRESENT\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"vulnConfidentialityImpact\":\"HIGH\",\"vulnIntegrityImpact\":\"NONE\",\"vulnAvailabilityImpact\":\"NONE\",\"subConfidentialityImpact\":\"LOW\",\"subIntegrityImpact\":\"LOW\",\"subAvailabilityImpact\":\"LOW\",\"exploitMaturity\":\"NOT_DEFINED\",\"confidentialityRequirement\":\"NOT_DEFINED\",\"integrityRequirement\":\"NOT_DEFINED\",\"availabilityRequirement\":\"NOT_DEFINED\",\"modifiedAttackVector\":\"NOT_DEFINED\",\"modifiedAttackComplexity\":\"NOT_DEFINED\",\"modifiedAttackRequirements\":\"NOT_DEFINED\",\"modifiedPrivilegesRequired\":\"NOT_DEFINED\",\"modifiedUserInteraction\":\"NOT_DEFINED\",\"modifiedVulnConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedVulnIntegrityImpact\":\"NOT_DEFINED\",\"modifiedVulnAvailabilityImpact\":\"NOT_DEFINED\",\"modifiedSubConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedSubIntegrityImpact\":\"NOT_DEFINED\",\"modifiedSubAvailabilityImpact\":\"NOT_DEFINED\",\"Safety\":\"NOT_DEFINED\",\"Automatable\":\"NOT_DEFINED\",\"Recovery\":\"NOT_DEFINED\",\"valueDensity\":\"NOT_DEFINED\",\"vulnerabilityResponseEffort\":\"NOT_DEFINED\",\"providerUrgency\":\"NOT_DEFINED\"}}]},\"weaknesses\":[{\"source\":\"psirt@tigera.io\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-532\"}]}],\"references\":[{\"url\":\"https://github.com/projectcalico/calico/pull/12502\",\"source\":\"psirt@tigera.io\"},{\"url\":\"https://github.com/projectcalico/calico/pull/12526\",\"source\":\"psirt@tigera.io\"},{\"url\":\"https://github.com/projectcalico/calico/pull/12527\",\"source\":\"psirt@tigera.io\"},{\"url\":\"https://www.tigera.io/security-bulletins/tta-2026-002/\",\"source\":\"psirt@tigera.io\"}]}}",
"vulnrichment": {
"containers": "{\"cna\": {\"providerMetadata\": {\"orgId\": \"e6d453f4-3dae-4941-bcea-9af25f4e824d\", \"shortName\": \"Tigera\", \"dateUpdated\": \"2026-05-28T15:47:42.791Z\"}, \"title\": \"ServiceAccount token disclosure via Azure IPAM CNI plugin logs\", \"datePublic\": \"2026-05-29T03:59:00.000Z\", \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"cweId\": \"CWE-532\", \"description\": \"CWE-532 Insertion of sensitive information into log file\", \"type\": \"CWE\"}]}], \"impacts\": [{\"capecId\": \"CAPEC-150\", \"descriptions\": [{\"lang\": \"en\", \"value\": \"CAPEC-150 Collect Data from Common Resource Locations\"}]}], \"affected\": [{\"vendor\": \"Tigera\", \"product\": \"Calico\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"3.32.0\", \"versionType\": \"semver\"}], \"defaultStatus\": \"affected\"}, {\"vendor\": \"Tigera\", \"product\": \"Calico Enterprise\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"3.21.7\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"3.22.0\", \"lessThan\": \"3.22.3\", \"versionType\": \"semver\"}], \"defaultStatus\": \"affected\"}, {\"vendor\": \"Tigera\", \"product\": \"Calico Cloud\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"22.4.0\", \"versionType\": \"semver\"}], \"defaultStatus\": \"affected\"}], \"cpeApplicability\": [{\"operator\": \"OR\", \"nodes\": [{\"operator\": \"OR\", \"negate\": false, \"cpeMatch\": [{\"vulnerable\": true, \"criteria\": \"cpe:2.3:a:tigera:calico:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"0\", \"versionEndExcluding\": \"3.32.0\"}]}, {\"operator\": \"OR\", \"negate\": false, \"cpeMatch\": [{\"vulnerable\": true, \"criteria\": \"cpe:2.3:a:tigera:calico_enterprise:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"0\", \"versionEndExcluding\": \"3.21.7\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:a:tigera:calico_enterprise:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"3.22.0\", \"versionEndExcluding\": \"3.22.3\"}]}, {\"operator\": \"OR\", \"negate\": false, \"cpeMatch\": [{\"vulnerable\": true, \"criteria\": \"cpe:2.3:a:tigera:calico_cloud:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"0\", \"versionEndExcluding\": \"22.4.0\"}]}]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"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 \\u2014 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\\u00a0 can read these logs and extract the credentials, which grant cluster-wide Calico networking admin privileges.\", \"supportingMedia\": [{\"type\": \"text/html\", \"base64\": false, \"value\": \"\u003cspan\u003eWhen 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 (\u003c/span\u003e\u003cspan\u003estdinData\u003c/span\u003e\u003cspan\u003e) at \u003c/span\u003e\u003cspan\u003eINFO\u003c/span\u003e\u003cspan\u003e level to \u003c/span\u003e\u003cspan\u003e/var/log/calico/cni/cni.log\u003c/span\u003e\u003cspan\u003e on every CNI \u003c/span\u003e\u003cspan\u003eADD\u003c/span\u003e\u003cspan\u003e and \u003c/span\u003e\u003cspan\u003eDEL\u003c/span\u003e\u003cspan\u003e invocation \\u2014 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\u0026nbsp; can read these logs and extract the credentials, which grant cluster-wide Calico networking admin privileges.\u003c/span\u003e\"}]}], \"references\": [{\"url\": \"https://github.com/projectcalico/calico/pull/12502\", \"tags\": [\"patch\"]}, {\"url\": \"https://github.com/projectcalico/calico/pull/12527\", \"tags\": [\"patch\"]}, {\"url\": \"https://github.com/projectcalico/calico/pull/12526\", \"tags\": [\"patch\"]}, {\"url\": \"https://www.tigera.io/security-bulletins/tta-2026-002/\", \"tags\": [\"vendor-advisory\"]}], \"metrics\": [{\"format\": \"CVSS\", \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}], \"cvssV4_0\": {\"attackVector\": \"NETWORK\", \"attackComplexity\": \"LOW\", \"attackRequirements\": \"PRESENT\", \"privilegesRequired\": \"LOW\", \"userInteraction\": \"NONE\", \"vulnConfidentialityImpact\": \"HIGH\", \"subConfidentialityImpact\": \"LOW\", \"vulnIntegrityImpact\": \"NONE\", \"subIntegrityImpact\": \"LOW\", \"vulnAvailabilityImpact\": \"NONE\", \"subAvailabilityImpact\": \"LOW\", \"exploitMaturity\": \"NOT_DEFINED\", \"Safety\": \"NOT_DEFINED\", \"Automatable\": \"NOT_DEFINED\", \"Recovery\": \"NOT_DEFINED\", \"valueDensity\": \"NOT_DEFINED\", \"vulnerabilityResponseEffort\": \"NOT_DEFINED\", \"providerUrgency\": \"NOT_DEFINED\", \"version\": \"4.0\", \"baseSeverity\": \"MEDIUM\", \"baseScore\": 6, \"vectorString\": \"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\"}}], \"credits\": [{\"lang\": \"en\", \"value\": \"Behnam Shobiri\", \"type\": \"finder\"}, {\"lang\": \"en\", \"value\": \"Behnam Shobiri\", \"type\": \"remediation developer\"}, {\"lang\": \"en\", \"value\": \"Anthony Tam\", \"type\": \"remediation reviewer\"}, {\"lang\": \"en\", \"value\": \"Matt Dupre\", \"type\": \"remediation reviewer\"}, {\"lang\": \"en\", \"value\": \"Casey Davenport\", \"type\": \"remediation verifier\"}], \"source\": {\"discovery\": \"UNKNOWN\"}, \"x_generator\": {\"engine\": \"Vulnogram 1.0.2\"}}, \"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-41185\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-05-28T17:03:45.985275Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-05-28T17:03:51.092Z\"}}]}",
"cveMetadata": "{\"cveId\": \"CVE-2026-41185\", \"assignerOrgId\": \"e6d453f4-3dae-4941-bcea-9af25f4e824d\", \"state\": \"PUBLISHED\", \"assignerShortName\": \"Tigera\", \"dateReserved\": \"2026-04-17T17:41:35.905Z\", \"datePublished\": \"2026-05-28T15:47:42.791Z\", \"dateUpdated\": \"2026-05-28T17:03:54.074Z\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…