🇰🇷 한글 설명
Linux 커널의 blk-mq 블록 계층에서 캐시된 요청이 잘못된 플래그를 사용하여 스케줄러에 삽입되는 취약점이 발견되었습니다. 이로 인해 특정 상황에서 요청 처리 과정이 누락되어 Kyber 스케줄러 사용 시 도메인 토큰이 누수되고 큐가 정지될 수 있습니다.
💡 쉬운 설명
컴퓨터의 데이터를 읽고 쓰는 명령을 관리하는 과정에서 설정값이 잘못 전달되어 시스템이 멈출 수 있는 문제입니다. 이로 인해 저장 장치의 작업 대기열이 막혀 시스템 성능이 저하되거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
blk-mq: set RQF_USE_SCHED when the operation is known
The cached requests are allocated for one operation but can be handed
out for another. A passthrough command has RQF_USE_SCHED cleared, so
using those flags for a subsequent read/write bio will insert it into
the scheduler without ->prepare_request() and frees it without
->finish_request(). For kyber, this leaks the domain token acquired at
dispatch and stalls the queue.
Don't set RQF_USE_SCHED based on the first operation the batch happened
to be allocated for. Instead, set it after the request is claimed by an
operation. Introduce a helper function, blk_mq_rq_late_init() for this,
and absorb blk_mq_rq_time_init() since the two run together.
📍 영향받는 시스템
Linux kernel (blk-mq 및 Kyber 스케줄러를 사용하는 시스템)
⚔️ 공격 벡터
특정 명령(passthrough)과 일반 읽기/쓰기 명령이 혼합된 요청을 처리할 때 발생하는 논리적 오류 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 blk_mq_rq_late_init() 함수가 적용된 버전을 사용하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인하십시오.