CVE-2024-47825

4.0 MEDIUM

📋 TL;DR

Cilium versions 1.14.0 through 1.14.15 and 1.15.0 through 1.15.9 have a policy bypass vulnerability where certain CIDR-based deny rules may be ignored when conflicting with specific allow rules. This affects users who have configured policies with 'enableDefaultDeny: false' or 'toEntities: all' alongside broader prefix deny rules.

💻 Affected Systems

Products:
  • Cilium
Versions: 1.14.0 through 1.14.15, 1.15.0 through 1.15.9
Operating Systems: Linux
Default Config Vulnerable: ✅ No
Notes: Only affects specific policy configurations using 'enableDefaultDeny: false' or 'toEntities: all' alongside broader prefix deny rules.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Unauthorized network traffic bypasses security policies, potentially allowing data exfiltration or lateral movement within the cluster.

🟠

Likely Case

Accidental policy misconfiguration leads to unintended network access that violates security requirements.

🟢

If Mitigated

Proper network segmentation and additional security controls limit the impact of any policy bypass.

🌐 Internet-Facing: MEDIUM - Could allow unauthorized external access if policies intended to block specific IP ranges are bypassed.
🏢 Internal Only: MEDIUM - Could enable unauthorized lateral movement within the cluster if internal segmentation policies are bypassed.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires knowledge of specific policy configurations and ability to craft network traffic that matches the bypass conditions.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.14.16, 1.15.10

Vendor Advisory: https://github.com/cilium/cilium/security/advisories/GHSA-3wwx-63fv-pfq6

Restart Required: Yes

Instructions:

1. Backup current Cilium configuration. 2. Upgrade Cilium to version 1.14.16 or 1.15.10 using your deployment method (Helm, operator, etc.). 3. Restart Cilium pods to apply the patch. 4. Verify policy enforcement is working correctly.

🔧 Temporary Workarounds

Remove enableDefaultDeny: false

linux

For policies using enableDefaultDeny: false, remove this configuration and explicitly define all required allow rules.

# Edit CiliumNetworkPolicy YAML files to remove 'enableDefaultDeny: false' and add explicit allow rules

Replace toEntities: all with toEntities: world

linux

For egress policies that specify toEntities: all, change to toEntities: world.

# Edit CiliumNetworkPolicy YAML files to change 'toEntities: all' to 'toEntities: world'

🧯 If You Can't Patch

  • Apply the workarounds described above to modify vulnerable policy configurations.
  • Implement additional network security controls like host-based firewalls or network ACLs to compensate for potential policy bypass.

🔍 How to Verify

Check if Vulnerable:

Check Cilium version and review network policies for configurations using 'enableDefaultDeny: false' or 'toEntities: all' alongside broader prefix deny rules.

Check Version:

kubectl exec -n kube-system cilium-xxxx -- cilium version | grep -i cilium

Verify Fix Applied:

After patching, test policy enforcement with traffic that should be denied by broader prefix rules to ensure they are properly enforced.

📡 Detection & Monitoring

Log Indicators:

  • Unexpected network connections that should be blocked by CIDR deny policies
  • Policy evaluation logs showing incorrect rule precedence

Network Indicators:

  • Traffic flows that violate documented network policies
  • Connections to/from IP ranges that should be blocked

SIEM Query:

source="cilium" ("policy bypass" OR "rule ignored" OR "unexpected connection")

🔗 References

📤 Share & Export