sctp: fix a TOCTOU race in SCTP_CMD_TIMER_START
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 4.20, 5.5, 5.7, 5.10.271, 5.15.222, and 5 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: sctp: fix a TOCTOU race in SCTP_CMD_TIMER_START The SCTP_CMD_TIMER_START handler checks timer_pending() before calling timer_reduce(). The timer can expire and detach between these operations, causing timer_reduce() 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 timer_reduce() to determine whether the timer was actually armed. Take the association reference only when timer_reduce() 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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 20a785aa52c82246055a089e55df9dac47d67da1 · fixed in cbf2df9aac4202f9fb0b361a7fe8c79b29fad92c; From 20a785aa52c82246055a089e55df9dac47d67da1 · fixed in 3205a20f837f5b1f009427ac3d9f706bf8a6fbec; From 20a785aa52c82246055a089e55df9dac47d67da1 · fixed in 755d70ca845fd9b87c7b338ae6ae832b08cd0005; From 20a785aa52c82246055a089e55df9dac47d67da1 · fixed in 09e7f9290d63178f56095d5c18fb9f9470153db5; From 20a785aa52c82246055a089e55df9dac47d67da1 · fixed in e42ba56281ca3ae2dcb3558bebee9a1c9a4831d9; From 20a785aa52c82246055a089e55df9dac47d67da1 · fixed in 00b841bac10230c557be6b38efc48508198fe23e; From 20a785aa52c82246055a089e55df9dac47d67da1 · fixed in 3d698d1e6c8bc41e3e1707777a016f1bdd07842d; From 20a785aa52c82246055a089e55df9dac47d67da1 · fixed in 2188569e7e1b0bc3f3b557dc97ab7a02befc11c8; From 4.19.126 · fixed in 4.20; From 5.4.44 · fixed in 5.5; From 5.6.16 · fixed in 5.7
- Linux Linux
5.7
- KernelLinux
From 5.7.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53; From 6.19.0 · fixed in 7.2.7
References 8
git.kernel.org
- stable/c/cbf2df9aac4202f9fb0b361a7fe8c79b29fad92c
- stable/c/3205a20f837f5b1f009427ac3d9f706bf8a6fbec
- stable/c/755d70ca845fd9b87c7b338ae6ae832b08cd0005
- stable/c/09e7f9290d63178f56095d5c18fb9f9470153db5
- stable/c/e42ba56281ca3ae2dcb3558bebee9a1c9a4831d9
- stable/c/00b841bac10230c557be6b38efc48508198fe23e
- stable/c/3d698d1e6c8bc41e3e1707777a016f1bdd07842d
- stable/c/2188569e7e1b0bc3f3b557dc97ab7a02befc11c8