CVE-2024-50196
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
08/11/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
pinctrl: ocelot: fix system hang on level based interrupts<br />
<br />
The current implementation only calls chained_irq_enter() and<br />
chained_irq_exit() if it detects pending interrupts.<br />
<br />
```<br />
for (i = 0; i stride; i++) {<br />
uregmap_read(info->map, id_reg + 4 * i, &reg);<br />
if (!reg)<br />
continue;<br />
<br />
chained_irq_enter(parent_chip, desc);<br />
```<br />
<br />
However, in case of GPIO pin configured in level mode and the parent<br />
controller configured in edge mode, GPIO interrupt might be lowered by the<br />
hardware. In the result, if the interrupt is short enough, the parent<br />
interrupt is still pending while the GPIO interrupt is cleared;<br />
chained_irq_enter() never gets called and the system hangs trying to<br />
service the parent interrupt.<br />
<br />
Moving chained_irq_enter() and chained_irq_exit() outside the for loop<br />
ensures that they are called even when GPIO interrupt is lowered by the<br />
hardware.<br />
<br />
The similar code with chained_irq_enter() / chained_irq_exit() functions<br />
wrapping interrupt checking loop may be found in many other drivers:<br />
```<br />
grep -r -A 10 chained_irq_enter drivers/pinctrl<br />
```
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15.169 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.114 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.58 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.11.5 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:* |
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/20728e86289ab463b99b7ab4425515bd26aba417
- https://git.kernel.org/stable/c/4a81800ef05bea5a9896f199677f7b7f5020776a
- https://git.kernel.org/stable/c/655f5d4662b958122b260be05aa6dfdf8768efe6
- https://git.kernel.org/stable/c/93b8ddc54507a227087c60a0013ed833b6ae7d3c
- https://git.kernel.org/stable/c/dcbe9954634807ec54e22bde278b5b269f921381
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html



