🔍 CVE-2023-54226

0.0
CVSS Score
UNKNOWN
2025-12-30
2026-10-28 19:10
✅ 완료

🇰🇷 한글 설명

Linux 커널의 AF_UNIX 소켓 구현에서 sk->sk_shutdown 필드에 대한 데이터 레이스가 발견되었습니다. unix_release_sock()과 unix_shutdown()은 잠금 하에서 값을 쓰지만, unix_poll()과 unix_dgram_poll()은 잠금 없이 읽어 KCSAN이 이를 탐지했습니다. 해결을 위해 쓰기와 읽기에 WRITE_ONCE()와 READ_ONCE()를 적용합니다.

💡 쉬운 설명

여러 프로세스가 같은 메모리 값을 동시에 읽고 쓰면서 값이 꼬일 수 있는 문제입니다. 주로 프로그램 안정성에 영향을 주며, 커널 수정으로 예측 가능한 동작을 보장합니다.

🇺🇸 원문 (English)

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

📍 영향받는 시스템

Linux 커널 6.3-rc7 이전 버전의 AF_UNIX 소켓을 사용하는 시스템 (패치 적용 전 커널 전반)

⚔️ 공격 벡터

로컬 사용자가 UNIX 도메인 소켓을 동시에 닫고 폴링하는 방식으로 데이터 레이스 상태를 유발할 수 있음

🛡️ 대응 방법

커뮤니티 커널의 해당 수정 커밋이 포함된 최신 안정 버전 커널로 업데이트하거나 배포판 보안 업데이트를 적용

🔧 검증 코드

출력된 커널 버전을 배포판의 보안 권고나 패치 목록과 비교하여, 해당 수정이 포함된 버전 이상인지 확인하고 미만이면 업데이트가 필요합니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel