Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/vulndb: potential Go vuln in github.com/cilium/cilium: CVE-2023-39347 #2081

Closed
GoVulnBot opened this issue Sep 27, 2023 · 3 comments
Closed
Assignees

Comments

@GoVulnBot
Copy link

CVE-2023-39347 references github.com/cilium/cilium, which may be a Go module.

Description:
Cilium is a networking, observability, and security solution with an eBPF-based dataplane. An attacker with the ability to update pod labels can cause Cilium to apply incorrect network policies. This issue arises due to the fact that on pod update, Cilium incorrectly uses user-provided pod labels to select the policies which apply to the workload in question. This can affect Cilium network policies that use the namespace, service account or cluster constructs to restrict traffic, Cilium clusterwide network policies that use Cilium namespace labels to select the Pod and Kubernetes network policies. Non-existent construct names can be provided, which bypass all network policies applicable to the construct. For example, providing a pod with a non-existent namespace as the value of the io.kubernetes.pod.namespace label results in none of the namespaced CiliumNetworkPolicies applying to the pod in question. This attack requires the attacker to have Kubernetes API Server access, as described in the Cilium Threat Model. This issue has been resolved in: Cilium versions 1.14.2, 1.13.7, and 1.12.14. Users are advised to upgrade. As a workaround an admission webhook can be used to prevent pod label updates to the k8s:io.kubernetes.pod.namespace and io.cilium.k8s.policy.* keys.

References:

Cross references:

See doc/triage.md for instructions on how to triage this report.

modules:
    - module: github.com/cilium/cilium
      vulnerable_at: 1.14.2
      packages:
        - package: cilium
description: |-
    Cilium is a networking, observability, and security solution with an eBPF-based
    dataplane. An attacker with the ability to update pod labels can cause Cilium to
    apply incorrect network policies. This issue arises due to the fact that on pod
    update, Cilium incorrectly uses user-provided pod labels to select the policies
    which apply to the workload in question. This can affect Cilium network policies
    that use the namespace, service account or cluster constructs to restrict
    traffic, Cilium clusterwide network policies that use Cilium namespace labels to
    select the Pod and Kubernetes network policies. Non-existent construct names can
    be provided, which bypass all network policies applicable to the construct. For
    example, providing a pod with a non-existent namespace as the value of the
    `io.kubernetes.pod.namespace` label results in none of the namespaced
    CiliumNetworkPolicies applying to the pod in question. This attack requires the
    attacker to have Kubernetes API Server access, as described in the Cilium Threat
    Model. This issue has been resolved in: Cilium versions 1.14.2, 1.13.7, and
    1.12.14. Users are advised to upgrade. As a workaround an admission webhook can
    be used to prevent pod label updates to the `k8s:io.kubernetes.pod.namespace`
    and `io.cilium.k8s.policy.*` keys.
cves:
    - CVE-2023-39347
references:
    - advisory: https://github.com/cilium/cilium/security/advisories/GHSA-gj2r-phwg-6rww
    - web: https://docs.cilium.io/en/latest/security/threat-model/#kubernetes-api-server-attacker

@jba jba self-assigned this Oct 2, 2023
@jba jba added the excluded: EFFECTIVELY_PRIVATE This vulnerability exists in a package can be imported, but isn't meant to be outside that module. label Oct 2, 2023
@jba
Copy link
Contributor

jba commented Oct 2, 2023

Vulnerability in tool.

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/531705 mentions this issue: data/excluded: batch add 18 excluded reports

@jba jba added duplicate and removed excluded: EFFECTIVELY_PRIVATE This vulnerability exists in a package can be imported, but isn't meant to be outside that module. labels Oct 2, 2023
@jba
Copy link
Contributor

jba commented Oct 2, 2023

Duplicate of #2078

@jba jba marked this as a duplicate of #2078 Oct 2, 2023
@jba jba closed this as completed Oct 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants