CVE-2024-47728: bpf: Zero former ARG_PTR_TO_{LONG,INT} args in case of error
bpf: Zero former ARGPTRTO{LONGINT} args in case of error
Other sources
In the Linux kernel, the following vulnerability has been resolved:
bpf: Zero former ARGPTRTO{LONG,INT} args in case of error
For all non-tracing helpers which formerly had ARGPTRTO{LONG,INT} as input arguments, zero the value for the case of an error as otherwise it could leak memory. For tracing, it is not needed given CAPPERFMON can already read all kernel memory anyway hence bpfgetfuncarg() and bpfgetfuncret() is skipped in here.
Also, the MTU helpers mtulen pointer value is being written but also read. Technically, the MEMUNINIT should not be there in order to always force init. Removing MEMUNINIT needs more verifier rework though: MEMUNINIT right now implies two things actually: i) write into memory, ii) memory does not have to be initialized. If we lift MEMUNINIT, it then becomes: i) read into memory, ii) memory must be initialized. This means that for bpfcheckmtu() we're readding the issue we're trying to fix, that is, it would then be able to write back into things like .rodata BPF maps. Follow-up work will rework the MEMUNINIT semantics such that the intent can be better expressed. For now just clear the mtulen on error path which can be lifted later again.
— NVD
This CVE was automatically created from a reference found in an email or other text. If you are reading this, then this CVE entry is probably erroneous, since this text should be replaced by the official CVE description automatically.
— Launchpad
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.1.129-1Fixed in 6.1.135-1Fixed in 6.12.25-1Fixed in 6.12.27-1 - Upgrade
Upgrade
debian/linux-6.1to a version that resolves this vulnerability.Fixed in 6.1.129-1~deb11u1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.6.56.1-5 - Configuration
For bpf_*_check_mtu() helpers, clear the *mtu_len pointer value on the error path to prevent memory leakage (this can be lifted later again).
Linux kernel eBPF helper(s) that use mtu_len pointer (bpf_*_check_mtu helpers) *mtu_len = clear (set to 0) on error path
Event History
Frequently Asked Questions
What is the severity of CVE-2024-47728?
CVE-2024-47728 has been rated as a significant issue due to potential impacts on system security.
How do I fix CVE-2024-47728?
To mitigate CVE-2024-47728, update your Linux kernel to the latest available version that contains the patch.
Which Linux kernel versions are affected by CVE-2024-47728?
CVE-2024-47728 affects Linux kernel versions from 5.2 up to 6.1.113 and various versions between 6.2 and 6.11.2.
What kind of vulnerability is CVE-2024-47728?
CVE-2024-47728 is a vulnerability in the BPF subsystem of the Linux kernel that affects error handling.
Is CVE-2024-47728 a remote or local vulnerability?
CVE-2024-47728 is a local vulnerability that requires access to the system to exploit.