title: serial: 8250_port: Check IRQ data before use
description: In the Linux kernel, the following vulnerability has been resolved:
serial: 8250_port: Check IRQ data before use
In case the leaf driver wants to use IRQ polling (irq = 0) and
IIR register shows that an interrupt happened in the 8250 hardware
the IRQ data can be NULL. In such a case we need to skip the wake
event as we came to this path from the timer interrupt and quite
likely system is already awake.
Without this fix we have got an Oops:
serial8250: ttyS0 at I/O 0x3f8 (irq = 0, base_baud = 115200) is a 16550A
...
BUG: kernel NULL pointer dereference, address: 0000000000000010
RIP: 0010:serial8250_handle_irq+0x7c/0x240
Call Trace:
? serial8250_handle_irq+0x7c/0x240
? __pfx_serial8250_timeout+0x10/0x10
affected:
{
product: Linux
vendor: Linux
defaultStatus: unaffected
repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
versions:
version: edfe57aedff4, lessThan: ee5732caaffb, status: affected, versionType: git
version: 0bd49a043c79, lessThan: c334650150c2, status: affected, versionType: git
version: 572d48361aa0, lessThan: bf3c728e3692, status: affected, versionType: git
version: d5d628fea5f6, lessThan: e14afa4450cb, status: affected, versionType: git
version: 424cf2929635, lessThan: 2b837f13a818, status: affected, versionType: git
version: 727e92fe13e8, lessThan: e14f68a48fd4, status: affected, versionType: git
version: 0ba9e3a13c6a, lessThan: 3345cc5f02f1, status: affected, versionType: git
version: 0ba9e3a13c6a, lessThan: cce7fc8b2996, status: affected, versionType: git
}
{
product: Linux
vendor: Linux
defaultStatus: affected
repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
versions:
version: 6.4, status: affected
version: 0, lessThan: 6.4, status: unaffected, versionType: custom
version: 4.14.327, lessThanOrEqual: 4.14.*, status: unaffected, versionType: custom
version: 4.19.296, lessThanOrEqual: 4.19.*, status: unaffected, versionType: custom
version: 5.4.258, lessThanOrEqual: 5.4.*, status: unaffected, versionType: custom
version: 5.10.198, lessThanOrEqual: 5.10.*, status: unaffected, versionType: custom
version: 5.15.134, lessThanOrEqual: 5.15.*, status: unaffected, versionType: custom
version: 6.1.56, lessThanOrEqual: 6.1.*, status: unaffected, versionType: custom
version: 6.5.6, lessThanOrEqual: 6.5.*, status: unaffected, versionType: custom
version: 6.6, lessThanOrEqual: *, status: unaffected, versionType: original_commit_for_fix
}
