tipc: avoid use-after-free in poll trace queue dumps
- 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 5.10.265, 5.15.216, 6.1.183, 6.6.151, 6.12.103, and 2 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
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: tipc: avoid use-after-free in poll trace queue dumps TIPC socket tracepoints dump queue state through tipc_sk_dump(). Most queue-dump callsites already serialize that walk under the socket lock or sk->sk_lock.slock, but tipc_poll() calls trace_tipc_sk_poll(..., TIPC_DUMP_ALL, ...) without holding either lock. That lets the poll trace path reach tipc_list_dump() and backlog head/tail dumping while another context dequeues and frees an skb, leaving the trace helper dereferencing a stale queue entry. Stop the unlocked poll trace site from requesting queue dumps. Other queue dump trace callsites keep their existing output under the locking they already provide, while poll still emits the event itself without walking live queue members from an unlocked context.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From b4b9771bcbbd5839b0f77aba55e2f85989ed6779 · fixed in 3cd57c6b210d50fd1f7ac1720442ba5be5dc94f8; From b4b9771bcbbd5839b0f77aba55e2f85989ed6779 · fixed in ae7fc824970888b4fdaa076819c9a6f2fcede275; From b4b9771bcbbd5839b0f77aba55e2f85989ed6779 · fixed in 78706367fe1b98aee0a6de27c62b7f1e3035f38d; From b4b9771bcbbd5839b0f77aba55e2f85989ed6779 · fixed in d7940bb6a8e7ab28f972c2875cb05783216312dc; From b4b9771bcbbd5839b0f77aba55e2f85989ed6779 · fixed in 5e82beba4bc1f91d0e64c9c43f2b2fa9cd1c2a7d; From b4b9771bcbbd5839b0f77aba55e2f85989ed6779 · fixed in bed792737b5f1ba773054dbe984502958bdfe6ce; From b4b9771bcbbd5839b0f77aba55e2f85989ed6779 · fixed in ac2f787980fdf4364cd5651a4c8128e59b8de3aa; From b4b9771bcbbd5839b0f77aba55e2f85989ed6779 · fixed in b4f1719dfea023220e0e6bd892b087d76b2a6a49
- Linux Linux
5.0
- KernelLinux
From 5.0.0 · fixed in 5.10.265; From 5.11.0 · fixed in 5.15.216; From 5.16.0 · fixed in 6.1.183; From 6.2.0 · fixed in 6.6.151; From 6.7.0 · fixed in 6.12.103; From 6.13.0 · fixed in 6.18.44; From 6.19.0 · fixed in 7.1.8
References 8
git.kernel.org
- stable/c/3cd57c6b210d50fd1f7ac1720442ba5be5dc94f8
- stable/c/ae7fc824970888b4fdaa076819c9a6f2fcede275
- stable/c/78706367fe1b98aee0a6de27c62b7f1e3035f38d
- stable/c/d7940bb6a8e7ab28f972c2875cb05783216312dc
- stable/c/5e82beba4bc1f91d0e64c9c43f2b2fa9cd1c2a7d
- stable/c/bed792737b5f1ba773054dbe984502958bdfe6ce
- stable/c/ac2f787980fdf4364cd5651a4c8128e59b8de3aa
- stable/c/b4f1719dfea023220e0e6bd892b087d76b2a6a49