---
title: "Security Bulletins – TTA-2026-001, CVE-2026-41184"
source: "https://www.tigera.io/security-bulletins/tta-2026-001/"
---

# Security Bulletins

ServiceAccount token disclosure via install-cni container logs

Description
Severity
Notes

## ServiceAccount token disclosure via install-cni container logs

Reference: TTA-2026-001, CVE-2026-41184

Date published: May 27, 2026

Medium
N/A

### Summary

In Calico, the install-cni init container logs the rendered CNI configuration to standard output. When the configuration template uses the __SERVICEACCOUNT_TOKEN__ placeholder (Canal / Flannel-Calico deployments), the installer substitutes the live Kubernetes ServiceAccount bearer token before logging, exposing the token to any authenticated user with pods/log permission in the namespace with calico-node. The token holds patch privileges on pods/status, enabling annotation-based attacks against cluster workloads. The default kubeconfig-based authentication path is not affected. This is a direct regression of TTA-2018-001.

### Severity

CVSSv4.0: 6.0 (Medium)

Vector: 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

The bearer token written to stdout is the live Kubernetes ServiceAccount JWT mounted into the install-cni container. Once disclosed, it grants patch permission on pods/status cluster-wide, which enables annotation-based attacks (for example, redirecting workloads through attacker-controlled webhooks or sidecars).

### References

- [https://github.com/projectcalico/calico/pull/12502](https://github.com/projectcalico/calico/pull/12502)

- [https://github.com/projectcalico/calico/pull/12527](https://github.com/projectcalico/calico/pull/12527)

- [https://github.com/projectcalico/calico/pull/12526](https://github.com/projectcalico/calico/pull/12526)

### Weakness Enumeration

[CWE-532](https://cwe.mitre.org/data/definitions/532.html): Insertion of Sensitive Information into Log File

[CWE-200](https://cwe.mitre.org/data/definitions/200.html): Exposure of Sensitive Information to an Unauthorized Actor

### Impact

[CAPEC-150](https://capec.mitre.org/data/definitions/150.html): Collect Data from Common Resource Locations

### Indicators of Impact/Compromise

Review the install-cni init container stdout logs in the namespace where calico-node is deployed; a vulnerable substitution will show the rendered netconf with a JWT in place of __SERVICEACCOUNT_TOKEN__. Audit the kube-apiserver audit log for unexpected pods/status operations issued by the calico-cni ServiceAccount.

### Workaround/Mitigation

Restrict pods/log access on the calico-node DaemonSet to the minimum set of principals, and rotate the affected Kubernetes ServiceAccount token. Upgrade to a fixed version as soon as possible.

### Affected Releases

- Calico Open Source - All releases prior to v3.31.6 (the v3.31 line up to and including v3.31.5, plus all earlier minor versions)

### Fixed Versions

- Calico Open Source - v3.31.6 - v3.32.0

### Acknowledgments

We would like to thank the following individuals:

- Behnam Shobiri — Finder and Remediation Developer

- Anthony Tam — Remediation Reviewer

- Matt Dupre — Remediation Reviewer

- Casey Davenport — Remediation Verifier

[Return to List](https://www.tigera.io/security-bulletins/)

<!-- plugin=object-cache-pro client=phpredis metric#hits=2893 metric#misses=37 metric#hit-ratio=98.7 metric#bytes=1300645 metric#prefetches=108 metric#store-reads=43 metric#store-writes=14 metric#store-hits=116 metric#store-misses=26 metric#sql-queries=30 metric#ms-total=463.37 metric#ms-cache=20.06 metric#ms-cache-avg=0.3582 metric#ms-cache-ratio=4.3 -->
