Cilium with misconfigured toGroups in policies can lead to unrestricted egress traffic

Description

Impact

CiliumNetworkPolicys which use egress.toGroups.aws.securityGroupsIds to reference AWS security group IDs that do not exist or are not attached to any network interface may unintentionally allow broader outbound access than intended by the policy authors. In such cases, the toCIDRset section of the derived policy is not generated, which means outbound traffic may be permitted to more destinations than originally intended.

Patches

This issue has been patched in:

  • Cilium v1.18.4
  • Cilium v1.17.10
  • Cilium v1.16.17

This issue affects:

  • Cilium v1.18 between v1.18.0 and v1.18.3 inclusive
  • Cilium v1.17 between v1.17.0 and v1.17.9 inclusive
  • Cilium v1.16.16 and below

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 @SeanEmac for reporting this issue and to @fristonio for the patch.

For more information

If you think you have found a vulnerability affecting Cilium, we strongly encourage you to report it to our security mailing list at [email protected]. This is a private mailing list for the Cilium security team, and your report will be treated as top priority.

Basic information

Type
reviewed
Severity
medium
Advisory on GitHub
Open advisory ↗
Repository advisory
Open repository advisory ↗
Source code
Browse source ↗
Published (advisory)
2025-12-01 18:59:54 UTC
Updated
2026-07-02 20:21:05 UTC
GitHub reviewed
2025-12-01 18:59:54 UTC
NVD published
2025-11-28

EPSS Score

Score Percentile
0.16% 5.65%

CVSS Scores

Base score Version Severity Vector
4.0 3.1
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N Click to expand
Attack vector (AV:L)
They already need access on the box, or another person has to do something wrong; it’s not a remote drive-by.
Attack complexity (AC:L)
Once they can reach the bug, pulling it off is straightforward—no weird race conditions or rare setup.
Privileges required (PR:N)
No account or special rights needed—anonymous or random user is enough.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:U)
Damage stays in the same “trust bubble” as the broken component—no big spill into unrelated systems.
Confidentiality (C:L)
Some sensitive info could get out, but not a total data dump.
Integrity (I:N)
Data isn’t meaningfully altered or forged.
Availability (A:N)
Service keeps running; no real outage angle.

Identifiers

CWEs

CWE id Name
CWE-284 Improper Access Control

Credits

  • SeanEmac (reporter)
  • fristonio (remediation_developer)
  • westonsteimel (analyst)

Affected packages (3)

Vulnerable version ranges and first patched releases as published by GitHub.

Ecosystem Package Vulnerable range First patched Vulnerable functions
go github.com/cilium/cilium >= 1.18.0, < 1.18.4 1.18.4
go github.com/cilium/cilium < 1.16.17 1.16.17
go github.com/cilium/cilium >= 1.17.0, < 1.17.10 1.17.10

References

cvelogic Threat Intelligence