Cloudanix VulnDB

CVE-2023-54226

None

CVSS

—

EPSS

0.2%

Published

Dec 30, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in the operating system's handling of local network-style connections between programs could cause unexpected crashes or incorrect behavior under heavy load.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
High
Impact
Other
Component
OS kernel
Class
Race Condition
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Data race on sk->sk_shutdown in AF_UNIX sockets where unix_release_sock and unix_shutdown perform locked writes while unix_poll and unix_dgram_poll perform lockless reads, resolved by adding WRITE_ONCE/READ_ONCE annotations for proper memory ordering.

Why it matters to the business

Affected Linux systems may experience unpredictable behavior or crashes in applications relying on Unix domain sockets, increasing operational risk for services using local IPC, though no active exploitation or ransomware campaigns are known.

How an attack unfolds

An attacker with local code execution could attempt to trigger concurrent socket close/shutdown and poll operations on the same AF_UNIX socket to hit the unsynchronized access window, potentially resulting in incorrect poll state or kernel instability; no named threat actors or public exploits are associated.

How to fix it

Upgrade the Linux kernel to a version containing commit 1c488f4e95b498c977fbeae784983eb4cf6085e8 or later; apply the fix that annotates sk_shutdown accesses with WRITE_ONCE and READ_ONCE.

How to confirm the fix worked

Verify the running kernel contains the referenced commit or a backport; confirm absence of KCSAN reports on unix_poll/unix_release_sock after applying the patch and recompile with KCSAN enabled if needed.

Typical attack path

  1. Obtain local execution on a system running an affected kernel
  2. Create or locate AF_UNIX sockets used by target processes
  3. Trigger concurrent release and poll operations to race on sk_shutdown
  4. Observe resulting poll misbehavior or kernel warnings

How to detect it

Examine kernel logs for KCSAN reports mentioning unix_poll or unix_release_sock; inspect for unusual process terminations or socket-related panics around the time of suspected exposure, though concrete post-exploitation artifacts are unlikely.

What your security team should do

  • Prioritize kernel updates on all production Linux systems within standard change windows
  • Monitor vendor advisories for backported fixes in distribution kernels
  • Review applications using heavy AF_UNIX socket usage for additional hardening
  • Enable kernel concurrency sanitizers in test environments to catch similar races

The record

In the Linux kernel, the following vulnerability has been resolved: af_unix: Fix data races around sk->sk_shutdown. KCSAN found a data race around sk->sk_shutdown where unix_release_sock() and unix_shutdown() update it under unix_state_lock(), OTOH unix_poll() and unix_dgram_poll() read it locklessly. We need to annotate the writes and reads with WRITE_ONCE() and READ_ONCE(). BUG: KCSAN: data-race in unix_poll / unix_release_sock write to 0xffff88800d0f8aec of 1 bytes by task 264 on cpu 0: unix_release_sock+0x75c/0x910 net/unix/af_unix.c:631 unix_release+0x59/0x80 net/unix/af_unix.c:1042 __sock_release+0x7d/0x170 net/socket.c:653 sock_close+0x19/0x30 net/socket.c:1397 __fput+0x179/0x5e0 fs/file_table.c:321 ____fput+0x15/0x20 fs/file_table.c:349 task_work_run+0x116/0x1a0 kernel/task_work.c:179 resume_user_mode_work include/linux/resume_user_mode.h:49 [inline] exit_to_user_mode_loop kernel/entry/common.c:171 [inline] exit_to_user_mode_prepare+0x174/0x180 kernel/entry/common.c:204 __syscall_exit_to_user_mode_work kernel/entry/common.c:286 [inline] syscall_exit_to_user_mode+0x1a/0x30 kernel/entry/common.c:297 do_syscall_64+0x4b/0x90 arch/x86/entry/common.c:86 entry_SYSCALL_64_after_hwframe+0x72/0xdc read to 0xffff88800d0f8aec of 1 bytes by task 222 on cpu 1: unix_poll+0xa3/0x2a0 net/unix/af_unix.c:3170 sock_poll+0xcf/0x2b0 net/socket.c:1385 vfs_poll include/linux/poll.h:88 [inline] ep_item_poll.isra.0+0x78/0xc0 fs/eventpoll.c:855 ep_send_events fs/eventpoll.c:1694 [inline] ep_poll fs/eventpoll.c:1823 [inline] do_epoll_wait+0x6c4/0xea0 fs/eventpoll.c:2258 __do_sys_epoll_wait fs/eventpoll.c:2270 [inline] __se_sys_epoll_wait fs/eventpoll.c:2265 [inline] __x64_sys_epoll_wait+0xcc/0x190 fs/eventpoll.c:2265 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x3b/0x90 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x72/0xdc value changed: 0x00 -> 0x03 Reported by Kernel Concurrency Sanitizer on: CPU: 1 PID: 222 Comm: dbus-broker Not tainted 6.3.0-rc7-02330-gca6270c12e20 #2 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014

Affected packages

Ecosystem Package Introduced Fixed
Linux Kernel 2.6.12 4.19.284
SUSE:Linux Enterprise Micro 5.5 kernel-rt 0 5.14.21-150500.13.118.1
SUSE:Linux Enterprise Micro 5.5 kernel-source-rt 0 5.14.21-150500.13.118.1

Related vulnerabilities