CVE-2024-38564 bpf: Add BPF_PROG_TYPE_CGROUP_SKB attach type enforcement in BPF_LINK_CREATE

High 7.8 Published Updated

Attackers can bypass attach type checks to attach cgroup_skb programs to unauthorized cgroup hooks, potentially escalating privileges or bypassing security controls.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2024-38564?

CVE-2024-38564 is a high-severity missing authorization vulnerability in Linux kernel, published on 19 Jun 2024. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

In the Linux kernel, the following vulnerability has been resolved:

bpf: Add BPF_PROG_TYPE_CGROUP_SKB attach type enforcement in BPF_LINK_CREATE

bpf_prog_attach uses attach_type_to_prog_type to enforce proper attach type for BPF_PROG_TYPE_CGROUP_SKB. link_create uses bpf_prog_get and relies on bpf_prog_attach_check_attach_type to properly verify prog_type <> attach_type association.

Add missing attach_type enforcement for the link_create case. Otherwise, it's currently possible to attach cgroup_skb prog types to other cgroup hooks.

Which versions are affected by CVE-2024-38564?

It affects 1 product.

Linux distribution packages (40)
bpftool-debuginfo Red Hat:rhel_eus:9.2::appstreamAll versions0:7.0.0-284.96.1.el9_2
kernel-64k-debug-debuginfo Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-debug-devel Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-debug-devel-matched Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-debuginfo Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-devel Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-devel-matched Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-debug-debuginfo Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-debug-devel Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-debug-devel-matched Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-debuginfo Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-debuginfo-common-aarch64 Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-debuginfo-common-ppc64le Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-debuginfo-common-s390x Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-debuginfo-common-x86_64 Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-devel Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-devel-matched Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-tools-debuginfo Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-zfcpdump-debuginfo Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-zfcpdump-devel Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
kernel-zfcpdump-devel-matched Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
perf Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
perf-debuginfo Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
python3-perf-debuginfo Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
rtla Red Hat:rhel_eus:9.2::appstreamAll versions0:5.14.0-284.96.1.el9_2
bpftool Red Hat:rhel_eus:9.2::baseosAll versions0:7.0.0-284.96.1.el9_2
bpftool-debuginfo Red Hat:rhel_eus:9.2::baseosAll versions0:7.0.0-284.96.1.el9_2
kernel Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-core Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-debug Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-debug-core Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-debug-debuginfo Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-debug-modules Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-debug-modules-core Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-debug-modules-extra Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-debuginfo Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-modules Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-modules-core Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2
kernel-64k-modules-extra Red Hat:rhel_eus:9.2::baseosAll versions0:5.14.0-284.96.1.el9_2

Products include Linux kernel.

How do I fix CVE-2024-38564?

Apply the vendor's patch.

Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.

Is CVE-2024-38564 being exploited?

There is no known exploitation of CVE-2024-38564 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as AZL-68606, BELL-CVE-2024-38564, DEBIAN-CVE-2024-38564, GHSA-h2jq-7w25-hghw, RHSA-2024:10945, RHSA-2024:10946 and 4 more.

Is CVE-2024-38564 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free