Description
In the Linux kernel, the following vulnerability has been resolved:

af_unix: Unlink scc_entry in unix_del_edge().

Kyle Zeng reported that GC could free a dead SCC partially.

The scenario is as follows:

1) Create two SCCs:

X -. A <-> B
^--'

2) Run the following concurrently:

2-1) send() sk-B to sk-B from sk-X
2-2) close() both A and B

At 2-1), there is a small window where unix_add_edges()
publishes a new edge (B <-> B) to GC but its skb is not queued
by skb_queue_tail().

If 2-2) completes before skb_queue_tail() and GC is triggered,
it judges A <-> B as dead, but B is not freed because GC cannot
collect the not-yet-queued skb holding the B <-> B edge.

X -. A <-> B -. This edge is visible
^--' ^..' but skb is not

This itself is not a problem since the next GC run will judge
B as dead as well and free it finally.

X -. A <.> B -.
^--' ^--'

However, X's SCC forces the next GC to call unix_walk_scc_fast(),
and it iterates over A through B's scc_entry.

Let's unlink scc_entry before freeing the vertex in unix_del_edge().
Published: 2026-08-26
Score: 7.8 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A race condition in the Linux kernel’s handling of Unix domain sockets can lead to a use‑after‑free when the SCC entry is unlinked in unix_del_edge(). The flaw occurs because the kernel may unlink the SCC entry before the related socket buffer is fully queued, leaving a reference to freed memory that can later be accessed during garbage collection. The result is a kernel panic that crashes the operating system, thereby denying availability to any service running on the affected host.

Affected Systems

All Linux kernel releases that implement the af_unix SCC handling are potentially affected until a vendor releases a kernel patch that includes the fix for this race condition. No specific version numbers are listed, so any kernel that contains the af_unix SCC code path and has not applied the updated code is at risk.

Risk and Exploitability

The EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog, indicating no publicly known exploitation. Based on the description, the likely attack vector requires a local attacker with the ability to orchestrate concurrent send() and close() calls on Unix domain sockets to trigger the race. The CVSS score of 7.8 indicates high severity, meaning the risk is largely dependent on local privilege; however, a kernel crash has severe availability implications and could provide a foothold for privilege escalation. Administrators should treat this as a high‑severity local denial‑of‑service risk until the patch is deployed.

Generated by OpenCVE AI on August 27, 2026 at 08:34 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest kernel update from your Linux distribution that includes the af_unix SCC race condition fix.
  • If the update is not yet available, consult the distribution’s security advisories or mailing lists and coordinate with the maintainers for an expedited release.
  • In the interim, restrict or disable the use of Unix domain sockets for applications that may issue concurrent send() and close() calls, or monitor the system for kernel crash events to enable rapid response.

Generated by OpenCVE AI on August 27, 2026 at 08:34 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 27 Aug 2026 09:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Thu, 27 Aug 2026 06:15:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Wed, 26 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 26 Aug 2026 14:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: af_unix: Unlink scc_entry in unix_del_edge(). Kyle Zeng reported that GC could free a dead SCC partially. The scenario is as follows: 1) Create two SCCs: X -. A <-> B ^--' 2) Run the following concurrently: 2-1) send() sk-B to sk-B from sk-X 2-2) close() both A and B At 2-1), there is a small window where unix_add_edges() publishes a new edge (B <-> B) to GC but its skb is not queued by skb_queue_tail(). If 2-2) completes before skb_queue_tail() and GC is triggered, it judges A <-> B as dead, but B is not freed because GC cannot collect the not-yet-queued skb holding the B <-> B edge. X -. A <-> B -. This edge is visible ^--' ^..' but skb is not This itself is not a problem since the next GC run will judge B as dead as well and free it finally. X -. A <.> B -. ^--' ^--' However, X's SCC forces the next GC to call unix_walk_scc_fast(), and it iterates over A through B's scc_entry. Let's unlink scc_entry before freeing the vertex in unix_del_edge().
Title af_unix: Unlink scc_entry in unix_del_edge().
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-27T05:01:17.707Z

Reserved: 2026-08-26T14:34:25.763Z

Link: CVE-2026-80521

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-26T15:17:05.677

Modified: 2026-08-27T06:17:30.780

Link: CVE-2026-80521

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-27T08:45:04Z

Weaknesses

No weakness.