CVE-2024-26923: af_unix: Fix garbage collector racing against connect()
In the Linux kernel, the following vulnerability has been resolved:
af_unix: Fix garbage collector racing against connect()
Garbage collector does not take into account the risk of embryo getting
enqueued during the garbage collection. If such embryo has a peer that
carries SCM_RIGHTS, two consecutive passes of scan_children() may see a
different set of children. Leading to an incorrectly elevated inflight
count, and then a dangling pointer within the gc_inflight_list.
sockets are AF_UNIX/SOCK_STREAM
S is an unconnected socket
L is a listening in-flight socket bound to addr, not in fdtable
V's fd will be passed via sendmsg(), gets inflight count bumped
connect(S, addr) sendmsg(S, [V]); close(V) __unix_gc()
---------------- ------------------------- -----------
NS = unix_create1()
skb1 = sock_wmalloc(NS)
L = unix_find_other(addr)
unix_state_lock(L)
unix_peer(S) = NS
// V count=1 inflight=0
NS = unix_peer(S)
skb2 = sock_alloc()
skb_queue_tail(NS, skb2[V])
// V became in-flight
// V count=2 inflight=1
close(V)
// V count=1 inflight=1
// GC candidate condition met
for u in gc_inflight_list:
if (total_refs == inflight_refs)
add u to gc_candidates
// gc_candidates={L, V}
for u in gc_candidates:
scan_children(u, dec_inflight)
// embryo (skb1) was not
// reachable from L yet, so V's
// inflight remains unchanged
__skb_queue_tail(L, skb1)
unix_state_unlock(L)
for u in gc_candidates:
if (u.inflight)
scan_children(u, inc_inflight_move_tail)
// V count=1 inflight=2 (!)
If there is a GC-candidate listening socket, lock/unlock its state. This
makes GC wait until the end of any ongoing connect() to that socket. After
flipping the lock, a possibly SCM-laden embryo is already enqueued. And if
there is another embryo coming, it can not possibly carry SCM_RIGHTS. At
this point, unix_inflight() can not happen because unix_gc_lock is already
taken. Inflight graph remains unaffected.
Security readout for executives and security teams
Plain-English summary
CVE-2024-26923 is a Linux kernel flaw in Unix domain socket cleanup logic. A race during connection handling can leave kernel bookkeeping inconsistent and create a dangling pointer. The bundle does not provide CVSS, exploitability, or impact details, so urgency should be based on kernel exposure and vendor patch status.
Executive priority
Prioritize patch validation for internet-facing, multi-user, container-hosting, and appliance fleets. No active exploitation is evidenced here, but kernel memory-safety flaws can have broad operational impact and often depend on vendor backports.
Technical view
The issue is in AF_UNIX/SOCK_STREAM garbage collection. During connect(), an embryo socket carrying SCM_RIGHTS can be enqueued while GC scans candidates, causing inconsistent child visibility, inflated inflight counts, and a dangling pointer in gc_inflight_list. Kernel stable commits resolve the race by synchronizing GC with listening socket state.
Likely exposure
Systems running affected Linux kernel versions or downstream vendor kernels may be exposed. The bundle lists Linux as affected and includes Debian LTS and Siemens advisory references, but it does not provide complete downstream product or distribution status.
Exploitation context
The source bundle does not show active exploitation, KEV listing, public exploit code, or attacker prerequisites. Treat this as a kernel reliability and memory-safety issue requiring vendor patch review, not as confirmed in-the-wild exploitation.
Researcher notes
Evidence supports a race in AF_UNIX garbage collection involving connect(), SCM_RIGHTS, inflight references, and gc_inflight_list. The bundle lacks CVSS, CWE, exploitability analysis, and precise fixed-version mapping beyond stable commit references and affected version data.
Mitigation direction
Identify Linux kernel versions across servers, appliances, containers hosts, and embedded systems.
Apply vendor kernel updates that include the referenced stable AF_UNIX garbage-collection fix.
Review Debian LTS and relevant OEM advisories for package-specific guidance.
Check Siemens advisories if Siemens products are in scope.
Avoid ad hoc kernel patching unless supported by your vendor process.
Validation and detection
Compare running kernel versions against vendor advisories and fixed kernel packages.
Confirm whether deployed kernels include one of the referenced stable commits.
Inventory products using downstream Linux kernels, including appliances and industrial devices.
Track remediation through vulnerability management with vendor advisory evidence.
Monitor kernel logs for instability, while recognizing logs cannot prove non-exposure.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2024-26923 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
3ADP providers
14Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Apr 24, 2024, 21:49 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.