GHSA-24qp-4xx8-3jvj is a low-severity (CVSS 3.2) CWE-863 vulnerability in github.com/cilium/cilium. O3 Security confirms whether GHSA-24qp-4xx8-3jvj is actually reachable in your code before you act, and blocks exploitation at runtime until you patch.
Cilium East-west traffic not subject to egress policy enforcement for requests via Gateway API load balancers
Real-World Exposure
github.com/cilium/cilium🐹github.com/cilium/cilium🐹github.com/cilium/ciliumReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Impact
For Cilium users who:
- Use Gateway API for Ingress for some services AND
- Use LB-IPAM or BGP for LB Service implementation AND
- Use network policies to block egress traffic from workloads in a namespace to workloads in other namespaces
Egress traffic from workloads covered by such network policies to LoadBalancers configured by Gateway resources will incorrectly be allowed.
LoadBalancer resources not deployed via a Gateway API configuration are not affected by this issue.
Patches
This issue was fixed by https://github.com/cilium/proxy/pull/1172.
This issue affects:
- Cilium v1.15 between v1.15.0 and v1.15.14 inclusive
- Cilium v1.16 between v1.16.0 and v1.16.7 inclusive
- Cilium v1.17 between v1.17.0 and v1.17.1 inclusive
This issue is fixed in:
- Cilium v1.15.15
- Cilium v1.16.8
- Cilium v1.17.2
Workarounds
A Clusterwide Cilium Network Policy can be used to work around this issue for users who are unable to upgrade. An outline of such a policy is provided below:
apiVersion: "cilium.io/v2"
kind: CiliumClusterwideNetworkPolicy
metadata:
name: "workaround"
spec:
endpointSelector:
matchExpressions:
- key: reserved:ingress
operator: Exists
ingress:
- fromEntities:
- world
- The policy opens up connectivity from all locations outside the cluster into the Cilium Ingress Gateway.
- The policy establishes a default deny for all other traffic towards the Cilium Ingress Gateway, including all in-cluster sources.
- It is possible to tailor the policy to more narrowly allow inbound traffic while creating a default deny posture for traffic between namespaces. Users should edit the policy to bring it in line with the security requirements particular to their environments.
Acknowledgements
The Cilium community has worked together with members of the Isovalent team to prepare these mitigations. Special thanks to @jrajahalme for the fix.
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.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/cilium/cilium | ≥ 1.16.0&&< 1.16.8 | 1.16.8 |
| 🐹Go | github.com/cilium/cilium | ≥ 1.17.0&&< 1.17.2 | 1.17.2 |
| 🐹Go | github.com/cilium/cilium | ≥ 1.15.0&&< 1.15.15 | 1.15.15 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/cilium/cilium. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.
Fix
Update github.com/cilium/cilium to 1.16.8 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-24qp-4xx8-3jvj is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
How O3 protects you
O3 pinpoints whether GHSA-24qp-4xx8-3jvj is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.
Tailored to GHSA-24qp-4xx8-3jvj. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.
Frequently Asked Questions
Is GHSA-24qp-4xx8-3jvj in your dependencies?
O3 detects GHSA-24qp-4xx8-3jvj across Go dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.