CVE-2026-99229 in Linux정보

요약

\~에 의해 VulDB • 2026. 11. 02.

리눅스 커널에서 다음 취약점이 해결되었습니다:

io_uring/wait: 멈춘 오버플로우 목록에서 스핀하지 않기

IO_CHECK_CQ_OVERFLOW_BIT가 설정되어 있는 동안, io_cqring_wait_schedule()는 시그널을 확인하거나 타임아웃을 설정하기 전에 즉시 반환하여, io_cqring_wait()가 오버플로우 목록을 비우도록 합니다. 만약 그로 인해 목록이 비워지지 않고 CQ 링이 호출자가 원하는 수의 이벤트를 보유하지 못하면, 루프가 동일한 결과와 함께 다시 시작됩니다. 태스크는 커널 내에서 스핀 상태에 빠지며 종료할 수 없습니다.

이 현상은 발생해서는 안 된다고 가정합니다: 만약 CQE를 플러시할 수 없다면 링은 가득 차 있으며, min_events는 링 크기로 제한되어야 합니다. 그러나 다음과 같은 상황이 발생할 수 있습니다:

- IORING_SETUP_CQE_MIXED 설정 시 32비트 CQE에는 두 개의 연속된 엔트리가 필요합니다. 단일 엔트리만 비어 있어도 목록에 고정(stuck)되며, 그 결과 링이 cq_entries 이벤트보다 적은 이벤트를 보유하게 됩니다. 링의 모든 엔트리 수만큼의 이벤트를 요청하는 싱글 스레드 애플리케이션은 io_uring_enter()에서 벗어나지 못합니다.

- 링이 가득 찼는지 여부는 CQ 헤드에 의해 결정되며, 이는 애플리케이션이 작성할 수 있습니다. 하나의 스레드가 빈 링에서 이벤트를 기다리는 동안, 다른 스레드는 헤드를 뒤로 이동시켜 링을 가득 찬 것처럼 보이게 하고 CQE 오버플로우를 유발할 수 있습니다. 대기 중인 태스크는 더 이상 중단될 수 없으며, SIGKILL로도 종료할 수 없습니다.

CQ 링에 공간을 만들 수 있는 것은 애플리케이션뿐입니다. 목록이 플러시되지 못한 경우 애플리케이션으로 제어권을 반환합니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-429915

EPSS

0.00000

출처

Interested in the pricing of exploits?

See the underground prices here!