CVE-2026-22997: net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts
In the Linux kernel, the following vulnerability has been resolved:
net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts
Since j1939_session_deactivate_activate_next() in j1939_tp_rxtimer() is
called only when the timer is enabled, we need to call
j1939_session_deactivate_activate_next() if we cancelled the timer.
Otherwise, refcount for j1939_session leaks, which will later appear as
| unregister_netdevice: waiting for vcan0 to become free. Usage count = 2.
problem.
Security readout for executives and security teams
Plain-English summary
CVE-2026-22997 is a Linux kernel availability flaw in the CAN J1939 networking code. A protocol session can be left referenced after a second RTS condition, causing cleanup problems and potential denial of service. This matters most for Linux systems that actually use CAN/J1939, common in embedded, industrial, and vehicle-adjacent environments.
Executive priority
Treat as high priority for fleets using Linux CAN/J1939, especially operational technology, embedded, automotive, or lab systems. For standard enterprise servers without CAN/J1939 use, urgency is lower but still belongs in the normal kernel patch cycle.
Technical view
The flaw is in j1939_xtp_rx_rts_session_active(). When an RTS is received for an active J1939 transport session and a timer is cancelled, the session deactivation path may not run. The source describes a leaked j1939_session refcount that later appears as unregister_netdevice waiting for vcan0 to become free.
Likely exposure
Exposure is likely limited to Linux hosts or devices running affected kernel versions with CAN J1939 functionality enabled or reachable. Typical internet-facing servers are less likely to be exposed unless they bridge or expose this protocol path. Distribution-specific kernel backports are not identified in the bundle.
Exploitation context
The bundle does not show CISA KEV listing or active exploitation. It supports a denial-of-service impact through kernel resource/reference leakage, not confidentiality or integrity compromise. No public exploit status is provided, so exploitation should not be assumed active.
Researcher notes
Evidence points to a refcount leak in the J1939 transport path after a second RTS handling case. The affected-version data in the bundle is broad and not distribution-specific. Validate against exact kernel source, config, loaded modules, and vendor backports before declaring exposure.
Mitigation direction
Apply Linux kernel or distribution updates that include the referenced stable fixes.
Check vendor advisories for backported fixes matching your deployed kernel build.
Prioritize systems using CAN/J1939 interfaces or virtual CAN testing environments.
If CAN/J1939 is unnecessary, review vendor-supported options to disable that exposure.
Track remediation through asset inventory rather than generic server patch queues.
Validation and detection
Inventory kernels and map them to vendor advisories for CVE-2026-22997.
Identify systems with CAN, vcan, or J1939 usage enabled.
Confirm patched kernels include an applicable referenced stable commit or vendor backport.
Review logs for unregister_netdevice waits involving CAN interfaces.
Test remediation in representative embedded or CAN-enabled environments before broad rollout.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-22997 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
8Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.