Description · from the CVE record
In the Linux kernel, the following vulnerability has been resolved:
sctp: clear control chunk transport if it is being removed
sctp_make_heartbeat_ack() caches the destination transport in
chunk->transport without taking a reference. When src_out_of_asoc_ok is
enabled, the HEARTBEAT ACK may remain queued on control_chunk_list instead
of being transmitted immediately.
If the peer transport is removed while the chunk is still queued,
sctp_assoc_rm_peer() drops the transport and schedules it for RCU freeing,
but only clears cached transport pointers in out_chunk_list. The queued
control chunk therefore retains a dangling transport pointer.
Once an ASCONF_ACK clears the suppression and the queued control chunk is
transmitted, SCTP dereferences the stale transport pointer, leading to a
use-after-free.
Fix this by also clearing chunk->transport for queued control chunks in
control_chunk_list when removing the transport.
Affected
ProductAffectedFixed inSource
Linux8a07eb0a50aebc8c95478d49c28c7f8419a26cef – < dbb3f418a8665ffb0514e1a9520ab6a1c5d4d886dbb3f418a8665ffb0514e1a9520ab6a1c5d4d886CNA
Linux8a07eb0a50aebc8c95478d49c28c7f8419a26cef – < fad4766a74220fe579c6fcaa10ba01c23529814ffad4766a74220fe579c6fcaa10ba01c23529814fCNA
Linux8a07eb0a50aebc8c95478d49c28c7f8419a26cef – < 936658ec41c28c397ef390140e02d4c91ade92f0936658ec41c28c397ef390140e02d4c91ade92f0CNA
Linux8a07eb0a50aebc8c95478d49c28c7f8419a26cef – < 8de65194a04d2552cd39b6c67d942d490f22d1748de65194a04d2552cd39b6c67d942d490f22d174CNA
Linux8a07eb0a50aebc8c95478d49c28c7f8419a26cef – < 6160e756db81d6cb63e3e2952efcf6c5134be3856160e756db81d6cb63e3e2952efcf6c5134be385CNA
Linux8a07eb0a50aebc8c95478d49c28c7f8419a26cef – < 18d704bdd809377dfd81a3c2f42426763b5da22718d704bdd809377dfd81a3c2f42426763b5da227CNA
Linux8a07eb0a50aebc8c95478d49c28c7f8419a26cef – < 4d6b9cac6df5e0cfef1a66b3edd7aebdb9e4b7e74d6b9cac6df5e0cfef1a66b3edd7aebdb9e4b7e7CNA
Linux8a07eb0a50aebc8c95478d49c28c7f8419a26cef – < c9158ceaf27780ef64534ad72f44ffde3f8ccc49c9158ceaf27780ef64534ad72f44ffde3f8ccc49CNA
Linux3.1–CNA