CVE-2024-50196

MEDIUM

Linux Kernel < 5.15.169 - Improper Condition Check

Title source: rule
STIX 2.1

Description

In the Linux kernel, the following vulnerability has been resolved: pinctrl: ocelot: fix system hang on level based interrupts The current implementation only calls chained_irq_enter() and chained_irq_exit() if it detects pending interrupts. ``` for (i = 0; i < info->stride; i++) { uregmap_read(info->map, id_reg + 4 * i, &reg); if (!reg) continue; chained_irq_enter(parent_chip, desc); ``` However, in case of GPIO pin configured in level mode and the parent controller configured in edge mode, GPIO interrupt might be lowered by the hardware. In the result, if the interrupt is short enough, the parent interrupt is still pending while the GPIO interrupt is cleared; chained_irq_enter() never gets called and the system hangs trying to service the parent interrupt. Moving chained_irq_enter() and chained_irq_exit() outside the for loop ensures that they are called even when GPIO interrupt is lowered by the hardware. The similar code with chained_irq_enter() / chained_irq_exit() functions wrapping interrupt checking loop may be found in many other drivers: ``` grep -r -A 10 chained_irq_enter drivers/pinctrl ```

Scores

CVSS v3 5.5
EPSS 0.0001
EPSS Percentile 1.8%
Attack Vector LOCAL
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

CISA SSVC

Vulnrichment
Exploitation none
Automatable no
Technical Impact partial

Details

CWE
CWE-754
Status published
Products (6)
linux/Kernel 4.16.0 - 5.15.169linux
linux/Kernel 5.16.0 - 6.1.114linux
linux/Kernel 6.2.0 - 6.6.58linux
linux/Kernel 6.7.0 - 6.11.5linux
linux/linux_kernel 6.12 rc1 (3 CPE variants)
linux/linux_kernel < 5.15.169
Published Nov 08, 2024
Tracked Since Feb 18, 2026