Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: debugobjects: Don't call fill_pool() in early boot hardirq context When booting a debug PREEMPT_RT kernel on an ARM64 system, a "inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage" lockdep warning message was reported to the console. During early boot, interrupts are enabled before the scheduler is enabled. In this window (before SYSTEM_SCHEDULING is set) interrupts can fire and in the hard interrupt context handler attempt to fill the pool This can lead to a deadlock when the interrupt occurred when the interrupt hits a region which holds a lock that is required to be taken in the allocation path. Add a new can_fill_pool() helper and reorder the exception rule and forbid this scenario by excluding allocations from hard interrupt context.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 13abb2b11ac3b6cb89822f152e770081893e4bc3 before 3cc90ea0dd0fb1f8db577dcdc027fc46c06049f6; affected 0d2a64411b0974a469ff56e62441055147e5a194 before 5d95f6b267f3d7fe54f42a3b224bb4a3d3990b41; affected c93859a52b0d6953cdaa17fd7fb46a6871b015cf before 27335c50014102e9077b784ebd314954286afcab; affected a460935022f512e167b4c5d4c12d85f89ba6aabd before 44b8b03a9fb5c575548fc72c674653d6baba142a; affected 06e0ae988f6e3499785c407429953ade19c1096b before 7bc71bdb1c1526c7f02a6adab324394ff1327b0a; affected 06e0ae988f6e3499785c407429953ade19c1096b before 0d046ae106255cba5eb83b23f78ee93f3620247d |
| Linux / Linux | affected 6.19; unaffected 0 before 6.19; unaffected 7.0.13 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/3cc90ea0dd0fb1f8db577dcdc027fc46c06049f6
- https://git.kernel.org/stable/c/5d95f6b267f3d7fe54f42a3b224bb4a3d3990b41
- https://git.kernel.org/stable/c/27335c50014102e9077b784ebd314954286afcab
- https://git.kernel.org/stable/c/44b8b03a9fb5c575548fc72c674653d6baba142a
- https://git.kernel.org/stable/c/7bc71bdb1c1526c7f02a6adab324394ff1327b0a
- https://git.kernel.org/stable/c/0d046ae106255cba5eb83b23f78ee93f3620247d