CVE-2024-47794
MediumIn the Linux kernel, the following vulnerability has been resolved: bpf: Prevent tailcall infinite loop caused by freplace There is a potential infinite loop issue that can occur when using a combination of tail calls and freplace. In an upcoming selftest, the attach target for entry_freplace of tailcall_freplace.c is subprog_tc of tc_bpf2bpf.c, while the tail call in entry_freplace leads to entry_tc. This results in an infinite loop: entry_tc -> subprog_tc -> entry_freplace --tailcall-> entry_tc. The problem arises because the tail_call_cnt in entry_freplace resets to zero each time entry_freplace is executed, causing the tail call mechanism to never terminate, eventually leading to a kernel panic. To fix this issue, the solution is twofold: 1. Prevent updating a program extended by an freplace program to a prog_array map. 2. Prevent extending a program that is already part of a prog_array map with an freplace program. This ensures that: * If a program or its subprogram has been extended by an freplace program, it can no longer be updated to a prog_array map. * If a program has been added to a prog_array map, neither it nor its subprograms can be extended by an freplace program. Moreover, an extension program should not be tailcalled. As such, return -EINVAL if the program has a type of BPF_PROG_TYPE_EXT when adding it to a prog_array map. Additionally, fix a minor code style issue by replacing eight spaces with a tab for proper formatting.
CVSS 3.1 score
5.5
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weakness type
CWE-835CVE-2024-47794 is a Infinite Loop vulnerability
What is Infinite Loop?
The product contains an iteration that does not exit even when it should. Learn more on MITRE CWE
Affected versions
Linux kernel versions
5.6
and later are affected. Fixed in
6.12.5,
6.13
and their respective stable series.
References
The following references provide additional information about CVE-2024-47794 including vendor advisories, patch commits, exploit details, and third-party analysis. Links are sourced from the NIST NVD database.
-
PatchKernel patch commithttps://git.kernel.org/stable/c/987aa730bad3e1ef66d9f30182294daa78f6387d
-
PatchKernel patch commithttps://git.kernel.org/stable/c/d6083f040d5d8f8d748462c77e90547097df936e
Frequently asked questions
-
What is CVE-2024-47794?
CVE-2024-47794 is a Medium severity Linux kernel vulnerability with a CVSS score of 5.5 out of 10 , classified as an Infinite Loop flaw (CWE-835) . It affects Linux kernel versions from 5.6 onward and has been patched in 6.12.5 and 6.13. CVE-2024-47794 has not been confirmed as actively exploited and is not listed in the CISA KEV catalog.
-
What is the CVSS score for CVE-2024-47794?
CVE-2024-47794 has a CVSS score of 5.5 out of 10, rated Medium severity (CVSS 3.1). The vector string is
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H. -
Is there a patch available for CVE-2024-47794?
Yes — CVE-2024-47794 has been patched. Fixed versions include 6.12.5 and 6.13. If you are running Linux kernel 5.6 or later up to the fix versions, apply the relevant patch for your kernel branch.
-
Is CVE-2024-47794 actively exploited?
No — CVE-2024-47794 has not been confirmed as actively exploited. It is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog.
-
What is Infinite Loop (CWE-835)?
The product contains an iteration that does not exit even when it should. View CWE-835 on MITRE CWE →