HIGH Introduced in 2.6.12
sctp Timer UAF
CVE-2026-98586
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
01Description
In the Linux kernel, the following vulnerability has been resolved: sctp: hold asoc or transport before mod_timer() in timer handlers Take the association or transport reference before rearming a timer in the timer handlers. The existing code calls mod_timer() before taking the reference needed by the rearmed timer without holding the sock lock. This creates a race with timer cleanup: if the timer is deleted after mod_timer() returns but before the reference is taken, the cleanup path can drop the timer's reference and destroy the transport or association. The timer handler then takes a reference on the already freed object and eventually drops it, causing a refcount underflow. Hold the object before mod_timer() and drop the reference if mod_timer() reports that the timer was already pending in timer handlers. Apply the same ordering to the proto-unreachable path, which can rearm a transport timer outside the timer handlers without holding the sock lock.
02KernelScan AI Analysis
Risk summary
A race condition in the SCTP protocol's timer handlers allows a remote attacker to trigger a use-after-free and refcount underflow by sending crafted SCTP packets to a listening SCTP service. Successful exploitation can lead to kernel memory corruption, enabling arbitrary code execution or denial of service.
Vulnerability analysis
The SCTP timer handlers incorrectly rearm timers via mod_timer() before taking a reference on the associated transport or association object. This creates a race window where a concurrent cleanup path can delete the timer, drop the last reference, and free the object. When the timer handler subsequently takes a reference on the already-freed object, a refcount underflow occurs, leading to use-after-free. The fix reverses the order: the reference is now acquired before mod_timer(), and released if the timer was already pending. An attacker can trigger this by establishing an SCTP association and inducing timer activity (retransmissions, heartbeats, etc.) while racing with connection teardown, requiring only network access to a listening SCTP endpoint.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 5.15 | 2.6.12 | 5.15.222 | f7dea7eaea20 |
| 6.1 | 2.6.12 | 6.1.189 | f9d929026d48 |
| 6.12 | 2.6.12 | 6.12.112 | 27c51a9b55b2 |
| 6.18 | 2.6.12 | 6.18.55 | d18cb8fd1b6b |
| 6.6 | 2.6.12 | 6.6.158 | 9d3d39da0544 |
| 7.2 | 2.6.12 | 7.2.9 | 35bf3b23c9a8 |
| mainline | 2.6.12 | 7.3 | cae23ae3f788 |
| cip/6.1 | 2.6.12 | 6.1.189-cip61 | f9d929026d48 |
| cip/6.1-rt | 2.6.12 | 6.1.189-cip61-rt32 | f9d929026d48 |
| cip/6.12 | 2.6.12 | 6.12.112-cip33 | 27c51a9b55b2 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Fixed in 6.12.112-cip33 |
| cip/6.1 | Fixed in 6.1.189-cip61 |
| cip/6.1-rt | Fixed in 6.1.189-cip61-rt32 |
| cip/5.10 | Affected — no CIP fix yet (latest 5.10.271-cip78) |
| cip/5.10-rt | Affected — no CIP fix yet (latest 5.10.268-cip77-rt34) |
| cip/4.19 | Affected — no CIP fix yet (latest 4.19.325-cip136) |
| cip/4.19-rt | Affected — no CIP fix yet (latest 4.19.325-cip136-rt50) |
| cip/4.4 | Affected — no CIP fix yet (latest 4.4.302-cip115) |
| cip/4.4-rt | Affected — no CIP fix yet (latest 4.4.302-cip115-rt63) |