CVE-2024-49924
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
21/10/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
fbdev: pxafb: Fix possible use after free in pxafb_task()<br />
<br />
In the pxafb_probe function, it calls the pxafb_init_fbinfo function,<br />
after which &fbi->task is associated with pxafb_task. Moreover,<br />
within this pxafb_init_fbinfo function, the pxafb_blank function<br />
within the &pxafb_ops struct is capable of scheduling work.<br />
<br />
If we remove the module which will call pxafb_remove to make cleanup,<br />
it will call unregister_framebuffer function which can call<br />
do_unregister_framebuffer to free fbi->fb through<br />
put_fb_info(fb_info), while the work mentioned above will be used.<br />
The sequence of operations that may lead to a UAF bug is as follows:<br />
<br />
CPU0 CPU1<br />
<br />
| pxafb_task<br />
pxafb_remove |<br />
unregister_framebuffer(info) |<br />
do_unregister_framebuffer(fb_info) |<br />
put_fb_info(fb_info) |<br />
// free fbi->fb | set_ctrlr_state(fbi, state)<br />
| __pxafb_lcd_power(fbi, 0)<br />
| fbi->lcd_power(on, &fbi->fb.var)<br />
| //use fbi->fb<br />
<br />
Fix it by ensuring that the work is canceled before proceeding<br />
with the cleanup in pxafb_remove.<br />
<br />
Note that only root user can remove the driver at runtime.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10.227 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.168 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.113 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.55 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.10.14 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.11 (including) | 6.11.3 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/3c0d416eb4bef705f699213cee94bf54b6acdacd
- https://git.kernel.org/stable/c/4a6921095eb04a900e0000da83d9475eb958e61e
- https://git.kernel.org/stable/c/4cda484e584be34d55ee17436ebf7ad11922b97a
- https://git.kernel.org/stable/c/6d0a07f68b66269e167def6c0b90a219cd3e7473
- https://git.kernel.org/stable/c/a3a855764dbacbdb1cc51e15dc588f2d21c93e0e
- https://git.kernel.org/stable/c/aaadc0cb05c999ccd8898a03298b7e5c31509b08
- https://git.kernel.org/stable/c/e657fa2df4429f3805a9b3e47fb1a4a1b02a72bd
- https://git.kernel.org/stable/c/e6897e299f57b103e999e62010b88e363b3eebae
- https://git.kernel.org/stable/c/fdda354f60a576d52dcf90351254714681df4370
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html



