CVE-2024-28250: Cilium has possible unencrypted traffic between nodes when using WireGuard and L7 policies
Impact
In Cilium clusters with WireGuard enabled and traffic matching Layer 7 policies:
- Traffic that should be WireGuard-encrypted is sent unencrypted between a node's Envoy proxy and pods on other nodes. - Traffic that should be WireGuard-encrypted is sent unencrypted between a node's DNS proxy and pods on other nodes.
Patches
This issue affects:
In native routing mode (routingMode=native): Cilium v1.14 versions before v1.14.8 Cilium v1.15 versions before v1.15.2 In tunneling mode (routingMode=tunnel): Cilium v1.14 versions before v1.14.4 Cilium v1.14.4 if encryption.wireguard.encapsulate is set to false (default).
This issue has been resolved in:
In native routing mode (routingMode=native): Cilium v1.14.8 Cilium v1.15.2 In tunneling mode (routingMode=tunnel): Cilium v1.14.4. NOTE encryption.wireguard.encapsulate must be set to true. Workarounds
There is no workaround to this issue.
Acknowledgements The Cilium community has worked together with members of Isovalent to prepare these mitigations. Special thanks to @brb, @giorio94, @gandro and @jschwinger233 for their work on triaging and remediating this issue.
For more information If you have any questions or comments about this advisory, please reach out on Slack.
If you think you found a related vulnerability, we strongly encourage you to report security vulnerabilities to our private security mailing list at security@cilium.io. This is a private mailing list where only members of the Cilium internal security team are subscribed to, and your report will be treated as top priority.
Other sources
Cilium is a networking, observability, and security solution with an eBPF-based dataplane. Starting in version 1.14.0 and prior to versions 1.14.8 and 1.15.2, In Cilium clusters with WireGuard enabled and traffic matching Layer 7 policies Wireguard-eligible traffic that is sent between a node's Envoy proxy and pods on other nodes is sent unencrypted and Wireguard-eligible traffic that is sent between a node's DNS proxy and pods on other nodes is sent unencrypted. This issue has been resolved in Cilium 1.14.8 and 1.15.2 in in native routing mode (routingMode=native) and in Cilium 1.14.4 in tunneling mode (routingMode=tunnel). Not that in tunneling mode, encryption.wireguard.encapsulate must be set to true. There is no known workaround for this issue.
— MITRE
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2024-28250?
CVE-2024-28250 has a critical severity due to the potential exposure of sensitive data across unencrypted channels in Cilium clusters.
How do I fix CVE-2024-28250?
To resolve CVE-2024-28250, upgrade to Cilium version 1.15.2 or 1.14.8, which contain the necessary security patches.
What versions of Cilium are affected by CVE-2024-28250?
CVE-2024-28250 affects Cilium version 1.14.0 through 1.14.8 and 1.15.0 through 1.15.2.
What causes the vulnerability in CVE-2024-28250?
The vulnerability in CVE-2024-28250 is caused by improper handling of Layer 7 traffic which results in WireGuard traffic being sent unencrypted.
Who is impacted by CVE-2024-28250?
Users and administrators running Cilium clusters with WireGuard enabled are impacted by CVE-2024-28250.