Skip to content
CVE PROGRAM SOURCE RECORD7.5 High

CVE-2026-43226

net/rds: No shortcut out of RDS_CONN_ERROR

Description

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."

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 5916e2c1554f3e36f770401c989c3c7fadf619ca to < 9bcd7c00691a2db9745817d5ea79262a503b135caffected
  • 5916e2c1554f3e36f770401c989c3c7fadf619ca to < a179ac7be8f5a650d0068040705f4cddd6ca369caffected
  • 5916e2c1554f3e36f770401c989c3c7fadf619ca to < 19e384a7d00d888303a8285977cdf1970c6cccd6affected
  • 5916e2c1554f3e36f770401c989c3c7fadf619ca to < f0f729bdffb08af32e0f54521b81b8a9e0321f16affected
  • 5916e2c1554f3e36f770401c989c3c7fadf619ca to < 81248b1eb3c5954cc1fc7b33b7c03e34d20cb8c8affected
  • 5916e2c1554f3e36f770401c989c3c7fadf619ca to < 899ef00963ce76f9fc421a7d02335fe4ead6389baffected
  • 5916e2c1554f3e36f770401c989c3c7fadf619ca to < 9ff599a9be784a808c36765086e3db2144aa3b66affected
  • 5916e2c1554f3e36f770401c989c3c7fadf619ca to < ad22d24be635c6beab6a1fdd3f8b1f3c478d15daaffected

Linux Linux

Default version status: affected

  • 4.8affected
  • 0 to < 4.8unaffected
  • 5.10.252 to ≤ 5.10.*unaffected
  • 5.15.202 to ≤ 5.15.*unaffected
  • 6.1.165 to ≤ 6.1.*unaffected
  • 6.6.128 to ≤ 6.6.*unaffected
  • 6.12.75 to ≤ 6.12.*unaffected
  • 6.18.16 to ≤ 6.18.*unaffected
  • 6.19.6 to ≤ 6.19.*unaffected
  • 7.0 to ≤ *unaffected

References