CVE-2024-49924

fbdev: pxafb: Fix possible use after free in pxafb_task()

State
Published
Severity
7.8 High
Published
Oct 21, 2024
Updated
Aug 5, 2026
Reserved
Oct 21, 2024

Read the record on cve.org

Description

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

fbdev: pxafb: Fix possible use after free in pxafb_task()

In the pxafb_probe function, it calls the pxafb_init_fbinfo function, after which &fbi->task is associated with pxafb_task. Moreover, within this pxafb_init_fbinfo function, the pxafb_blank function within the &pxafb_ops struct is capable of scheduling work.

If we remove the module which will call pxafb_remove to make cleanup, it will call unregister_framebuffer function which can call do_unregister_framebuffer to free fbi->fb through put_fb_info(fb_info), while the work mentioned above will be used. The sequence of operations that may lead to a UAF bug is as follows:

CPU0 CPU1

| pxafb_task pxafb_remove | unregister_framebuffer(info) | do_unregister_framebuffer(fb_info) | put_fb_info(fb_info) | // free fbi->fb | set_ctrlr_state(fbi, state) | __pxafb_lcd_power(fbi, 0) | fbi->lcd_power(on, &fbi->fb.var) | //use fbi->fb

Fix it by ensuring that the work is canceled before proceeding with the cleanup in pxafb_remove.

Note that only root user can remove the driver at runtime.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 9f17f2874834f4cdbe48cc05676d8f7558793204 to before e657fa2df4429f3805a9b3e47fb1a4a1b02a72bdAffected
  • 9f17f2874834f4cdbe48cc05676d8f7558793204 to before 6d0a07f68b66269e167def6c0b90a219cd3e7473Affected
  • 9f17f2874834f4cdbe48cc05676d8f7558793204 to before e6897e299f57b103e999e62010b88e363b3eebaeAffected
  • 9f17f2874834f4cdbe48cc05676d8f7558793204 to before 4cda484e584be34d55ee17436ebf7ad11922b97aAffected
  • 9f17f2874834f4cdbe48cc05676d8f7558793204 to before 3c0d416eb4bef705f699213cee94bf54b6acdacdAffected
  • 9f17f2874834f4cdbe48cc05676d8f7558793204 to before fdda354f60a576d52dcf90351254714681df4370Affected
  • 9f17f2874834f4cdbe48cc05676d8f7558793204 to before aaadc0cb05c999ccd8898a03298b7e5c31509b08Affected
  • 9f17f2874834f4cdbe48cc05676d8f7558793204 to before a3a855764dbacbdb1cc51e15dc588f2d21c93e0eAffected
  • 9f17f2874834f4cdbe48cc05676d8f7558793204 to before 4a6921095eb04a900e0000da83d9475eb958e61eAffected
LinuxLinux
  • 2.6.27Affected
  • before 2.6.27Not affected
  • 4.19.323 through 4.19.*Not affected
  • 5.4.285 through 5.4.*Not affected
  • 5.10.227 through 5.10.*Not affected
  • 5.15.168 through 5.15.*Not affected
  • 6.1.113 through 6.1.*Not affected
  • 6.6.55 through 6.6.*Not affected
  • 6.10.14 through 6.10.*Not affected
  • 6.11.3 through 6.11.*Not affected
  • 6.12 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.