CVE-2026-43226

In the Linux kernel, the following vulnerability has been resolved: net/rds: No shortcut out of RDS_CONN_ERROR RDS connections carry a state "rds_conn_path::cp_state" and transitions from one state to another and are conditional upon an expected state: "rds_conn_path_transition." There is one exception to this conditionality, which is "RDS_CONN_ERROR" that can be enforced by "rds_conn_path_drop" regardless of what state the condition is currently in. But as soon as a connection enters state "RDS_CONN_ERROR", the connection handling code expects it to go through the shutdown-path. The RDS/TCP multipath changes added a shortcut out of "RDS_CONN_ERROR" straight back to "RDS_CONN_CONNECTING" via "rds_tcp_accept_one_path" (e.g. after "rds_tcp_state_change"). A subsequent "rds_tcp_reset_callbacks" can then transition the state to "RDS_CONN_RESETTING" with a shutdown-worker queued. That'll trip up "rds_conn_init_shutdown", which was never adjusted to handle "RDS_CONN_RESETTING" and subsequently drops the connection with the dreaded "DR_INV_CONN_STATE", which leaves "RDS_SHUTDOWN_WORK_QUEUED" on forever. So we do two things here: a) Don't shortcut "RDS_CONN_ERROR", but take the longer path through the shutdown code. b) Add "RDS_CONN_RESETTING" to the expected states in "rds_conn_init_shutdown" so that we won't error out and get stuck, if we ever hit weird state transitions like this again."
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

11 Nov 2026, 20:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: net/rds: Sin atajo para salir de RDS_CONN_ERROR Las conexiones RDS llevan un estado ’rds_conn_path::cp_state’ y las transiciones de un estado a otro son condicionales a un estado esperado: ’rds_conn_path_transition’. Hay una excepción a esta condicionalidad, que es ’RDS_CONN_ERROR’ que puede ser forzado por ’rds_conn_path_drop’ independientemente del estado en el que se encuentre actualmente la conexión. Pero tan pronto como una conexión entra en el estado ’RDS_CONN_ERROR’, el código de manejo de la conexión espera que pase por la ruta de apagado. Los cambios de multipath de RDS/TCP añadieron un atajo para salir de ’RDS_CONN_ERROR’ directamente de vuelta a ’RDS_CONN_CONNECTING’ a través de ’rds_tcp_accept_one_path’ (p. ej., después de ’rds_tcp_state_change’). Una ’rds_tcp_reset_callbacks’ subsiguiente puede entonces hacer la transición del estado a ’RDS_CONN_RESETTING’ con un trabajador de apagado en cola. Eso hará tropezar a ’rds_conn_init_shutdown’, que nunca fue ajustado para manejar ’RDS_CONN_RESETTING’ y posteriormente descarta la conexión con el temido ’DR_INV_CONN_STATE’, lo que deja ’RDS_SHUTDOWN_WORK_QUEUED’ activado para siempre. Así que hacemos dos cosas aquí: a) No atajar ’RDS_CONN_ERROR’, sino tomar la ruta más larga a través del código de apagado. b) Añadir ’RDS_CONN_RESETTING’ a los estados esperados en ’rds_conn_init_shutdown’ para que no fallemos y nos quedemos atascados, si alguna vez nos encontramos con transiciones de estado extrañas como esta de nuevo.

Information

Published : 2026-05-06 12:16

Updated : 2026-11-11 20:10


NVD link : CVE-2026-43226

Mitre link : CVE-2026-43226

CVE.ORG link : CVE-2026-43226


JSON object : View

Products Affected

linux

  • linux_kernel