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

From: Greg Kroah-Hartman <[email-masked]>

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.

The Linux kernel CVE team has assigned CVE-2024-38564 to this issue.

Affected and fixed versions
===========================

	Issue introduced in 5.10 with commit 4a1e7c0c63e0 and fixed in 6.6.33 with commit 6675c541f540
	Issue introduced in 5.10 with commit 4a1e7c0c63e0 and fixed in 6.8.12 with commit 67929e973f5a
	Issue introduced in 5.10 with commit 4a1e7c0c63e0 and fixed in 6.9.3 with commit b34bbc766510
	Issue introduced in 5.10 with commit 4a1e7c0c63e0 and fixed in 6.10 with commit 543576ec15b1

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-38564
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	kernel/bpf/syscall.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/6675c541f540a29487a802d3135280b69b9f568d
	https://git.kernel.org/stable/c/67929e973f5a347f05fef064fea4ae79e7cdb5fd
	https://git.kernel.org/stable/c/b34bbc76651065a5eafad8ddff1eb8d1f8473172
	https://git.kernel.org/stable/c/543576ec15b17c0c93301ac8297333c7b6e84ac7