CVE-2026-74587: sctp: fix use-after-free of cached ASCONF chunk
In the Linux kernel, the following vulnerability has been resolved:
sctp: fix use-after-free of cached ASCONF chunk
addiplastasconf caches the outstanding outbound ASCONF chunk. The normal ASCONF-ACK completion path releases the chunk and clears the pointer.
However, sctpasconfqueueteardown() releases the cached chunk without clearing addiplastasconf. During peer restart handling, sctpsfdodupcooka() queues SCTPCMDPURGEASCONFQUEUE, which invokes sctpasconfqueueteardown() while the association remains alive and leaves the pointer dangling.
A delayed authenticated ASCONF-ACK can then reach sctpsfdoasconfack(), which accesses the stale chunk and passes it to sctpprocessasconfack(), causing a use-after-free and a second release.
Clearing the pointer exposes a race with T4 expiry. Peer restart handling queues the timer stop before the purge, but SCTPCMDTIMERSTOP uses timerdelete(), which does not wait for a callback already running on another CPU. Such a callback can reach sctpsft4timerexpire() after the purge and dereference NULL.
Clear addiplastasconf after releasing the cached chunk, and make sctpsft4timerexpire() consume a stale T4 expiry if no outstanding ASCONF remains.