Skip to main content
← All vulnerabilities
CVE-2026-90124

irqchip/renesas-rzg2l: Fix loss of interrupt

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: irqchip/renesas-rzg2l: Fix loss of interrupt rzg2l_clear_irq_int() and rzg2l_clear_tint_int() perform a read-modify-write on the ISCR/TSCR status registers to clear the bit for the interrupt just handled. Since these registers are write-0-to-clear per bit, this is racy: If another interrupt's status bit gets set between the read and the write, that bit is written back as 0 by the software-constructed value, clearing an interrupt that hasn't been serviced yet and losing it. This can be reproduced by triggering multiple interrupts at once, e.g.: gpioset -c gpiochip0 355=0 353=0 328=0 352=0 Fix this by writing back only the bit being cleared, with all other bits set to 1, instead of read-modify-writing the whole register. Since 1-bits are left unchanged by hardware, concurrently-set status bits for other interrupts are preserved.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 3fed09559cd8be79568d368ce02bf7f2d56259b6 · fixed in c043591f03a8111f7d306b8122c444a949486269; From 3fed09559cd8be79568d368ce02bf7f2d56259b6 · fixed in b5ba8b861b5d833394bd23df3f4b59883ef18c88; From 3fed09559cd8be79568d368ce02bf7f2d56259b6 · fixed in 3791e242ec2e5a5cd9e010a75ed1125d0e84d394; From 3fed09559cd8be79568d368ce02bf7f2d56259b6 · fixed in 38c6831fefde0ff89f8d2dcb924f957a89dec414; From 3fed09559cd8be79568d368ce02bf7f2d56259b6 · fixed in dbecbe23dc606c4af68b4591a41124186f5c1802; From 3fed09559cd8be79568d368ce02bf7f2d56259b6 · fixed in 50b10bd0c2d721ad38abd1abe3acdefb6caa0944

  • Linux Linux

    6.0

  • KernelLinux

    From 6.0.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6

References 6

git.kernel.org