Improper Check for Unusual or Exceptional Conditions Affecting linux-6.1 package, versions <6.1.119-1~deb11u1


Severity

Recommended
0.0
medium
0
10

Snyk's Security Team recommends NVD's CVSS assessment. Learn more

Threat Intelligence

EPSS
0.04% (5th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-DEBIAN11-LINUX61-8601295
  • published2 Jan 2025
  • disclosed8 Nov 2024

Introduced: 8 Nov 2024

CVE-2024-50196  (opens in a new tab)
CWE-754  (opens in a new tab)

How to fix?

Upgrade Debian:11 linux-6.1 to version 6.1.119-1~deb11u1 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream linux-6.1 package and not the linux-6.1 package as distributed by Debian. See How to fix? for Debian:11 relevant fixed versions and status.

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 &lt; info-&gt;stride; i++) {
    uregmap_read(info-&gt;map, id_reg + 4 * i, &amp;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

CVSS Scores

version 3.1