KernelScan.io

HIGH Introduced in 2.6.12

sctp Timer UAF

CVE-2026-98586

CVSS 8.1 / 10.0 KernelScan AI

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

01

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.

02

Engine v0.9.0

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.

Affectednet/sctp/input.c, net/sctp/sm_sideeffect.c (sctp subsystem)

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.

03

BranchIntroducedFixed inPatch commit
5.152.6.125.15.222f7dea7eaea20
6.12.6.126.1.189f9d929026d48
6.122.6.126.12.11227c51a9b55b2
6.182.6.126.18.55d18cb8fd1b6b
6.62.6.126.6.1589d3d39da0544
7.22.6.127.2.935bf3b23c9a8
mainline2.6.127.3cae23ae3f788
cip/6.12.6.126.1.189-cip61f9d929026d48
cip/6.1-rt2.6.126.1.189-cip61-rt32f9d929026d48
cip/6.122.6.126.12.112-cip3327c51a9b55b2

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.112-cip33
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Affected — no CIP fix yet (latest 5.10.271-cip78)
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)