🇰🇷 한글 설명
Linux 커널의 blk-wbt 구성 요소에서 wbt_alloc() 및 wbt_init()의 실패를 처리할 때 WARN_ON_ONCE를 사용하여 불필요한 경고를 발생시키는 취약점이 발견되었습니다. 메모리 부족이나 이미 등록된 상태와 같은 정상적인 실패 경로에서도 스택 트레이스를 포함한 경고가 발생하여 시스템 로그를 오염시킬 수 있습니다.
💡 쉬운 설명
컴퓨터의 저장 장치를 관리하는 프로그램이 정상적인 상황에서도 마치 큰 오류가 발생한 것처럼 잘못된 경고 메시지를 남기는 문제입니다. 이로 인해 시스템 로그에 불필요한 정보가 쌓여 관리에 혼선을 줄 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
blk-wbt: remove WARN_ON_ONCE from wbt_init_enable_default()
wbt_init_enable_default() uses WARN_ON_ONCE to check for failures from
wbt_alloc() and wbt_init(). However, both are expected failure paths:
- wbt_alloc() can return NULL under memory pressure (-ENOMEM)
- wbt_init() can fail with -EBUSY if wbt is already registered
syzbot triggers this by injecting memory allocation failures during MTD
partition creation via ioctl(BLKPG), causing a spurious warning.
wbt_init_enable_default() is a best-effort initialization called from
blk_register_queue() with a void return type. Failure simply means the
disk operates without writeback throttling, which is harmless.
Replace WARN_ON_ONCE with plain if-checks, consistent with how
wbt_set_lat() in the same file already handles these failures. Add a
pr_warn() for the wbt_init() failure to retain diagnostic information
without triggering a full stack trace.
📍 영향받는 시스템
Linux Kernel (blk-wbt 모듈 사용 환경)
⚔️ 공격 벡터
메모리 부족 상태를 유도하거나 특정 ioctl(BLKPG) 호출을 통해 시스템 로그에 가짜 경고를 생성하는 방식
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 확인