🇰🇷 한글 설명
Linux 커널의 RAID1 구성에서 REQ_ATOMIC 쓰기 작업 중 배드 블록 오류가 발생할 경우 nr_pending 참조 카운트가 해제되지 않는 메모리 누수 취약점이 발견되었습니다. 이로 인해 참조 카운트가 0이 되지 않아 해당 장치를 시스템에서 제거할 수 없는 문제가 발생합니다.
💡 쉬운 설명
데이터 저장 장치에 오류가 생겼을 때, 시스템이 해당 장치를 사용 중이라고 착각하여 삭제하거나 제거하지 못하게 만드는 버그입니다. 이로 인해 시스템 자원이 계속 점유되어 관리에 어려움을 줄 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
raid1: fix nr_pending leak in REQ_ATOMIC bad-block error path
In raid1_write_request(), each per-mirror loop iteration begins by
incrementing rdev->nr_pending. If a REQ_ATOMIC write encounters a
badblock within the requested range, the code jumps to err_handle
without dropping the reference taken for the current mirror.
err_handle's cleanup loop will only decrements for k < i and
r1_bio->bios[k] is non-NULL. The current slot is therefore skipped,
leaving its nr_pending reference leaked permanently. The reference
prevents the rdev from ever being removed, since raid1_remove_conf()
refuses to remove an rdev with nr_pending > 0.
Fix this by calling rdev_dec_pending() before jumping to err_handle.
📍 영향받는 시스템
Linux kernel (RAID1 모듈 사용 환경)
⚔️ 공격 벡터
직접적인 공격보다는 배드 블록 오류를 유발하여 시스템 자원(rdev)을 영구적으로 점유하는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.