🔍 CVE-2026-52933

7.8
CVSS Score
HIGH
2026-06-24
2026-10-19 20:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 io_uring/poll 구성 요소에서 io_poll_get_ownership() 함수가 부호 있는 정수 비교를 사용하여 발생하는 취약점입니다. poll_refs에 취소 플래그(BIT(31))가 설정될 경우 값이 음수로 해석되어 임계값 비교가 항상 거짓이 되고, 이로 인해 필요한 슬로우패스(slowpath)가 실행되지 않는 문제가 있습니다.

💡 쉬운 설명

컴퓨터가 숫자를 계산할 때 특정 표시(플래그)를 숫자의 일부로 오해하여 계산 오류를 일으키는 문제입니다. 이 오류 때문에 시스템이 특정 작업을 정상적으로 처리하지 못하고 건너뛰게 됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: io_uring/poll: fix signed comparison in io_poll_get_ownership() io_poll_get_ownership() uses a signed comparison to check whether poll_refs has reached the threshold for the slowpath: if (unlikely(atomic_read(&req->poll_refs) >= IO_POLL_REF_BIAS)) atomic_read() returns int (signed). When IO_POLL_CANCEL_FLAG (BIT(31)) is set in poll_refs, the value becomes negative in signed arithmetic, so the >= 128 comparison always evaluates to false and the slowpath is never taken. Fix this by casting the atomic_read() result to unsigned int before the comparison, so that the cancel flag is treated as a large positive value and correctly triggers the slowpath.

📍 영향받는 시스템

io_uring을 사용하는 Linux 커널 버전

⚔️ 공격 벡터

io_uring의 poll 작업 시 특정 비트(IO_POLL_CANCEL_FLAG)를 설정하여 로직 우회

🛡️ 대응 방법

atomic_read() 결과를 unsigned int로 캐스팅하여 비교하도록 커널 패치 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 최신 보안 패치 버전인지 확인

Shell / Script
uname -r

📊 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