CVE-2026-98130: sctp: fix a TOCTOU race in SCTP_CMD_TIMER_START
In the Linux kernel, the following vulnerability has been resolved:
sctp: fix a TOCTOU race in SCTPCMDTIMERSTART
The SCTPCMDTIMERSTART handler checks timerpending() before calling timerreduce(). The timer can expire and detach between these operations, causing timerreduce() to rearm the timer without taking the association reference required for the newly armed timer.
The timer callback later unconditionally drops its association reference, which can leave the association reference count unbalanced and result in use-after-free during association teardown.
Use the return value of timerreduce() to determine whether the timer was actually armed. Take the association reference only when timerreduce() successfully starts a new timer, closing the race between checking the timer state and rearming it.
This issue was reported by Nico Yip (@cyeaa) working with TrendAI Zero Day Initiative.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Systems running a Linux kernel with SCTP support are the relevant population. The flaw is in the SCTP timer-start path and involves SCTP association teardown.
What condition is required to trigger the race?
The SCTP timer must expire and detach after the handler checks its pending state but before timer_reduce() runs. If timer_reduce() then rearms the timer without acquiring a new association reference, the later callback can unbalance the reference count.
What is the potential impact?
An unbalanced association reference count can cause a use-after-free while an SCTP association is being torn down.
How does the fix prevent the issue?
The fix uses timer_reduce()'s return value to determine whether a timer was newly armed. It takes an association reference only when timer_reduce() successfully starts that timer, eliminating the check-then-rearm race.