KernelScan.io

HIGH Introduced in 3.2

rapidio Doorbell Deref

CVE-2026-80645

CVSS 8.1 / 10.0 NVD

CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H

KernelScan AI6.8MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: rapidio/tsi721: prevent a bad dereference in tsi721_db_dpc() With a list_for_each() loop, if we don't find the item we are looking for in the list, then the loop exits with the iterator, which is "dbell" in this loop, pointing to invalid memory. This code uses the "found" variable to determine if we have found the doorbell we are looking for or not. However, the problem that the "found" variable needs to be set to false at the start of each iteration, otherwise after the first correct doorbell, then everything is marked as found. Reset the "found" to false at the start of the iteration and move the variable inside the loop.

02

Engine v0.6.0

Risk summary

A logic error in the Tsi721 RapidIO bridge driver causes it to dereference an invalid pointer when processing doorbell messages, potentially corrupting kernel memory or crashing the system. An attacker needs physical access to the RapidIO fabric and the TSI721 hardware must be present. Systems in sealed enclosures without exposed RapidIO ports are not at risk.

Affecteddrivers/rapidio/devices/tsi721.c (RapidIO Tsi721 bridge driver)

Vulnerability analysis

The Tsi721 RapidIO bridge driver processes incoming doorbell messages by searching a list of registered doorbell handlers. A flag tracking whether a matching handler was found is not reset between iterations, so after the first successful match every subsequent doorbell is incorrectly treated as found. When no matching handler exists, the list iterator ends up pointing to the list head rather than a valid handler object, and the code dereferences it as if it were valid, causing type confusion and potential kernel memory corruption. The fix resets the found flag to false at the start of each loop iteration so only genuine matches are processed. This vulnerability is reachable only from the RapidIO fabric — an attacker must have physical access to the RapidIO interconnect to send doorbell messages, and the target system must have TSI721 bridge hardware present and the driver loaded.

03

BranchIntroducedFixed inPatch commit
5.103.25.10.2619e775c319990
5.153.25.15.21281c06ef66c3a
6.13.26.1.17813092966ba5d
6.123.26.12.973b5c66e922aa
6.183.26.18.40070f356ea4f4
6.63.26.6.145acd54f42abbb
7.13.27.1.5dc28a14f3e45
mainline3.27.2fc15e3a30ddd
cip/4.193.24.19.325-cip136ca342c7d1b24
cip/4.19-rt3.24.19.325-cip136-rt50ca342c7d1b24
cip/4.43.24.4.302-cip115928954e3ec8e
cip/4.4-rt3.24.4.302-cip115-rt63928954e3ec8e
cip/5.103.25.10.263-cip769e775c319990
cip/5.10-rt3.25.10.268-cip77-rt349e775c319990
cip/6.13.26.1.182-cip5913092966ba5d
cip/6.1-rt3.26.1.182-cip59-rt3113092966ba5d
cip/6.123.26.12.101-cip293b5c66e922aa

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.101-cip29
cip/6.1Fixed in 6.1.182-cip59
cip/6.1-rtFixed in 6.1.182-cip59-rt31
cip/5.10Fixed in 5.10.263-cip76
cip/5.10-rtFixed in 5.10.268-cip77-rt34
cip/4.19Fixed in 4.19.325-cip136
cip/4.19-rtFixed in 4.19.325-cip136-rt50
cip/4.4Fixed in 4.4.302-cip115
cip/4.4-rtFixed in 4.4.302-cip115-rt63