🔍 CVE-2026-23275

7.8
CVSS Score
HIGH
2026-03-20
2026-10-19 19:17
✅ 완료

🇰🇷 한글 설명

Linux 커널 io_uring에서 ring 리사이징 중 task work 플래그 조작 시 race condition이 발생할 수 있습니다. 이를 해결하기 위해 RCU(Read-Copy-Update) 메커니즘으로 보호되는 추가 rings 포인터를 도입하여 메모리 안정성을 확보합니다.

💡 쉬운 설명

Linux 커널의 io_uring 기능에서 메모리 재할당 중 동시성 문제가 발생할 수 있으며, 이로 인해 시스템이 불안정해질 수 있습니다. RCU 메커니즘을 통해 메모리 포인터를 안전하게 보호함으로써 해결됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: io_uring: ensure ctx->rings is stable for task work flags manipulation If DEFER_TASKRUN | SETUP_TASKRUN is used and task work is added while the ring is being resized, it's possible for the OR'ing of IORING_SQ_TASKRUN to happen in the small window of swapping into the new rings and the old rings being freed. Prevent this by adding a 2nd ->rings pointer, ->rings_rcu, which is protected by RCU. The task work flags manipulation is inside RCU already, and if the resize ring freeing is done post an RCU synchronize, then there's no need to add locking to the fast path of task work additions. Note: this is only done for DEFER_TASKRUN, as that's the only setup mode that supports ring resizing. If this ever changes, then they too need to use the io_ctx_mark_taskrun() helper.

📍 영향받는 시스템

io_uring DEFER_TASKRUN/SETUP_TASKRUN이 활성화된 Linux 커널 (버전 무관)

⚔️ 공격 벡터

ring resize 중 task work 추가로 race condition 유발 (로컬 권한 필요)

🛡️ 대응 방법

Linux 커널을 최신 버전으로 업데이트하여 io_uring RCU 동기화 패치 적용

🔧 검증 코드

커널 버전 확인 후 DEFER_TASKRUN이 활성화된 경우, 커널 패치 여부를 커널 소스 또는 변경 로그에서 확인

Shell / Script
uname -r && grep -i 'IORING_SETUP_DEFER_TASKRUN' /boot/config-$(uname -r) 2>/dev/null || echo 'config not found'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel