In the Linux kernel, the following vulnerability has been resolved:
serial/pmac_zilog: Remove flawed mitigation for rx irq flood
The mitigation was intended to stop the irq completely. That may be better than a hard lock-up but it turns out that you get a crash anyway if you're using pmac_zilog as a serial console:
ttyPZ0: pmz: rx irq flood ! BUG: spinlock recursion on CPU#0, swapper/0
That's because the prerr() call in pmzreceivechars() results in pmzconsolewrite() attempting to lock a spinlock already locked in pmzinterrupt(). With CONFIGDEBUGSPINLOCK=y, this produces a fatal BUG splat. The spinlock in question is the one in struct uart_port.
Even when it's not fatal, the serial port rx function ceases to work. Also, the iteration limit doesn't play nicely with QEMU, as can be seen in the bug report linked below.
A web search for other reports of the error message "pmz: rx irq flood" didn't produce anything. So I don't think this code is needed any more. Remove it.
{ "vanir_signatures": [ { "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d679c816929d62af51c8e6d7fc0e165c9412d2f3", "digest": { "threshold": 0.9, "line_hashes": [ "227547021385054834888908572532067403533", "305054943263698402272965231159288381863", "39255009999991933955740354416184795645", "150028642568850700574433448494427778599", "80394217047140494127678656586045505612", "105394046316393513887289689825795920106", "119634589453157816569136607175857618751", "284514368285969109433081616253768321383", "257731318918308527506425820713254320616", "255885185110660559527810034304060900555", "15598180623853608496020930369007649380", "310832082868114913798236646368808027847", "247377716539442061306614423145969716662", "325842966076154979966544765945761322511", "108760475971174834037348405366909498028", "36429445744373766289799937842837723445", "241720042075917047268805648086791959465" ] }, "deprecated": false, "id": "CVE-2024-26999-2ad74541", "signature_version": "v1", "signature_type": "Line", "target": { "file": "drivers/tty/serial/pmac_zilog.c" } }, { "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1be3226445362bfbf461c92a5bcdb1723f2e4907", "digest": { "threshold": 0.9, "line_hashes": [ "227547021385054834888908572532067403533", "305054943263698402272965231159288381863", "39255009999991933955740354416184795645", "150028642568850700574433448494427778599", "80394217047140494127678656586045505612", "105394046316393513887289689825795920106", "119634589453157816569136607175857618751", "284514368285969109433081616253768321383", "257731318918308527506425820713254320616", "255885185110660559527810034304060900555", "15598180623853608496020930369007649380", "310832082868114913798236646368808027847", "247377716539442061306614423145969716662", "325842966076154979966544765945761322511", "108760475971174834037348405366909498028", "36429445744373766289799937842837723445", "241720042075917047268805648086791959465" ] }, "deprecated": false, "id": "CVE-2024-26999-3665f1f3", "signature_version": "v1", "signature_type": "Line", "target": { "file": "drivers/tty/serial/pmac_zilog.c" } }, { "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bbaafbb4651fede8d3c3881601ecaa4f834f9d3f", "digest": { "threshold": 0.9, "line_hashes": [ "227547021385054834888908572532067403533", "305054943263698402272965231159288381863", "39255009999991933955740354416184795645", "150028642568850700574433448494427778599", "80394217047140494127678656586045505612", "105394046316393513887289689825795920106", "119634589453157816569136607175857618751", "284514368285969109433081616253768321383", "257731318918308527506425820713254320616", "255885185110660559527810034304060900555", "15598180623853608496020930369007649380", "310832082868114913798236646368808027847", "247377716539442061306614423145969716662", "325842966076154979966544765945761322511", "108760475971174834037348405366909498028", "36429445744373766289799937842837723445", "241720042075917047268805648086791959465" ] }, "deprecated": false, "id": "CVE-2024-26999-575d3a15", "signature_version": "v1", "signature_type": "Line", "target": { "file": "drivers/tty/serial/pmac_zilog.c" } }, { "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ca09dfc3cfdf89e6af3ac24e1c6c0be5c575a729", "digest": { "threshold": 0.9, "line_hashes": [ "227547021385054834888908572532067403533", "305054943263698402272965231159288381863", "39255009999991933955740354416184795645", "150028642568850700574433448494427778599", "80394217047140494127678656586045505612", "105394046316393513887289689825795920106", "119634589453157816569136607175857618751", "284514368285969109433081616253768321383", "257731318918308527506425820713254320616", "255885185110660559527810034304060900555", "15598180623853608496020930369007649380", "310832082868114913798236646368808027847", "247377716539442061306614423145969716662", "325842966076154979966544765945761322511", "108760475971174834037348405366909498028", "36429445744373766289799937842837723445", "241720042075917047268805648086791959465" ] }, "deprecated": false, "id": "CVE-2024-26999-646b5790", "signature_version": "v1", "signature_type": "Line", "target": { "file": "drivers/tty/serial/pmac_zilog.c" } }, { "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7a3bbe41efa55323b6ea3c35fa15941d4dbecdef", "digest": { "threshold": 0.9, "line_hashes": [ "227547021385054834888908572532067403533", "305054943263698402272965231159288381863", "39255009999991933955740354416184795645", "150028642568850700574433448494427778599", "80394217047140494127678656586045505612", "105394046316393513887289689825795920106", "119634589453157816569136607175857618751", "284514368285969109433081616253768321383", "257731318918308527506425820713254320616", "255885185110660559527810034304060900555", "15598180623853608496020930369007649380", "310832082868114913798236646368808027847", "247377716539442061306614423145969716662", "325842966076154979966544765945761322511", "108760475971174834037348405366909498028", "36429445744373766289799937842837723445", "241720042075917047268805648086791959465" ] }, "deprecated": false, "id": "CVE-2024-26999-67bd16f2", "signature_version": "v1", "signature_type": "Line", "target": { "file": "drivers/tty/serial/pmac_zilog.c" } }, { "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@52aaf1ff14622a04148dbb9ccce6d9de5d534ea7", "digest": { "threshold": 0.9, "line_hashes": [ "227547021385054834888908572532067403533", "305054943263698402272965231159288381863", "39255009999991933955740354416184795645", "150028642568850700574433448494427778599", "80394217047140494127678656586045505612", "105394046316393513887289689825795920106", "119634589453157816569136607175857618751", "284514368285969109433081616253768321383", "257731318918308527506425820713254320616", "255885185110660559527810034304060900555", "15598180623853608496020930369007649380", "310832082868114913798236646368808027847", "247377716539442061306614423145969716662", "325842966076154979966544765945761322511", "108760475971174834037348405366909498028", "36429445744373766289799937842837723445", "241720042075917047268805648086791959465" ] }, "deprecated": false, "id": "CVE-2024-26999-71b60ada", "signature_version": "v1", "signature_type": "Line", "target": { "file": "drivers/tty/serial/pmac_zilog.c" } }, { "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d679c816929d62af51c8e6d7fc0e165c9412d2f3", "digest": { "length": 2115.0, "function_hash": "72741183697484374931516792577594442363" }, "deprecated": false, "id": "CVE-2024-26999-7a7986b6", "signature_version": "v1", "signature_type": "Function", "target": { "function": "pmz_receive_chars", "file": "drivers/tty/serial/pmac_zilog.c" } }, { "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@69a02273e288011b521ee7c1f3ab2c23fda633ce", "digest": { "length": 2141.0, "function_hash": "68939126035225700112098303081253800712" }, "deprecated": false, "id": "CVE-2024-26999-82f19fb2", "signature_version": "v1", "signature_type": "Function", "target": { "function": "pmz_receive_chars", "file": "drivers/tty/serial/pmac_zilog.c" } }, { "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@69a02273e288011b521ee7c1f3ab2c23fda633ce", "digest": { "threshold": 0.9, "line_hashes": [ "197495255842220969883190986855081648793", "55116018754384663727255985705622209925", "325498102982965702972836921550269918519", "150028642568850700574433448494427778599", "80394217047140494127678656586045505612", "105394046316393513887289689825795920106", "119634589453157816569136607175857618751", "284514368285969109433081616253768321383", "257731318918308527506425820713254320616", "255885185110660559527810034304060900555", "15598180623853608496020930369007649380", "310832082868114913798236646368808027847", "247377716539442061306614423145969716662", "325842966076154979966544765945761322511", "108760475971174834037348405366909498028", "36429445744373766289799937842837723445", "241720042075917047268805648086791959465" ] }, "deprecated": false, "id": "CVE-2024-26999-ca52a7bc", "signature_version": "v1", "signature_type": "Line", "target": { "file": "drivers/tty/serial/pmac_zilog.c" } }, { "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ab86cf6f8d24e63e9aca23da5108af1aa5483928", "digest": { "threshold": 0.9, "line_hashes": [ "227547021385054834888908572532067403533", "305054943263698402272965231159288381863", "39255009999991933955740354416184795645", "150028642568850700574433448494427778599", "80394217047140494127678656586045505612", "105394046316393513887289689825795920106", "119634589453157816569136607175857618751", "284514368285969109433081616253768321383", "257731318918308527506425820713254320616", "255885185110660559527810034304060900555", "15598180623853608496020930369007649380", "310832082868114913798236646368808027847", "247377716539442061306614423145969716662", "325842966076154979966544765945761322511", "108760475971174834037348405366909498028", "36429445744373766289799937842837723445", "241720042075917047268805648086791959465" ] }, "deprecated": false, "id": "CVE-2024-26999-ebe70fb6", "signature_version": "v1", "signature_type": "Line", "target": { "file": "drivers/tty/serial/pmac_zilog.c" } } ] }