HIGH Introduced in 6.5
genirq IrqName Overflow
CVE-2026-97503
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
01Description
In the Linux kernel, the following vulnerability has been resolved: genirq/proc: Size interrupt directory names for 10-digit interrupt numbers /proc/irq/<n>/ directory names are built in `char name[10]` buffers with `sprintf(name, "%u", irq)`. Ten-digit IRQ numbers already need 11 bytes including the trailing NUL, and current sparse-IRQ configurations allow interrupt numbers in that range. Size the temporary name buffer for the current decimal form and switch to bounded formatting when creating or removing the proc entry.
02KernelScan AI Analysis
Risk summary
Systems with sparse interrupt configurations that permit 10-digit IRQ numbers can trigger a one-byte stack buffer overflow when the kernel creates or removes /proc/irq directory entries. The overflow corrupts adjacent stack memory and could lead to privilege escalation or a system crash. Any local user who can trigger device operations leading to interrupt registration may be affected, though reaching a 10-digit interrupt number requires an unusual configuration.
Vulnerability analysis
When the kernel registers or unregisters an interrupt, it formats the interrupt number into a fixed-size character buffer on the stack to create the corresponding /proc/irq directory entry. That buffer is sized for 9-digit numbers, so a 10-digit interrupt number causes the string's terminating NUL byte to overflow one byte past the buffer end, corrupting adjacent stack memory. The fix enlarges the buffer to hold the full range of unsigned interrupt numbers and replaces the unbounded formatting call with a bounded variant that cannot overflow. The vulnerable code path runs during interrupt registration, which is driven by driver and hardware activity rather than by direct userspace requests; a local attacker would need to trigger device operations that cause a 10-digit interrupt allocation, which requires a system configured with sparse IRQs that allow such high numbers.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.12 | 6.5 | 6.12.114 | 488bcd7fd3e9 |
| 6.18 | 6.5 | 6.18.53 | d4b22fbae700 |
| 6.6 | 6.5 | 6.6.160 | a8adf64fe7fd |
| mainline | 6.5 | 7.2 | c2c7983c93f5 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Affected — no CIP fix yet (latest 6.12.112-cip33) |