🇰🇷 한글 설명
Linux 커널의 md/raid1 모듈에서 느린 디스크를 포함한 성능 저하된 어레이 사용 시 데이터 손상이 발생할 수 있는 취약점입니다. 복구 중인 디스크를 선택하는 과정에서 복구 상태를 확인하는 로직이 누락되어 아직 복구되지 않은 데이터를 읽게 되는 것이 원인입니다.
💡 쉬운 설명
데이터를 여러 곳에 나누어 저장하는 시스템에서, 아직 복구가 끝나지 않은 불안정한 디스크에서 잘못된 데이터를 읽어와 정보가 깨질 수 있는 문제입니다. 시스템이 복구 중인 디스크를 정상적인 디스크로 착각하여 잘못된 데이터를 가져오는 것이 핵심입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
md/raid1: Fix data corruption for degraded array with slow disk
read_balance() will avoid reading from slow disks as much as possible,
however, if valid data only lands in slow disks, and a new normal disk
is still in recovery, unrecovered data can be read:
raid1_read_request
read_balance
raid1_should_read_first
-> return false
choose_best_rdev
-> normal disk is not recovered, return -1
choose_bb_rdev
-> missing the checking of recovery, return the normal disk
-> read unrecovered data
Root cause is that the checking of recovery is missing in
choose_bb_rdev(). Hence add such checking to fix the problem.
Also fix similar problem in choose_slow_rdev().
📍 영향받는 시스템
Linux kernel (md/raid1 모듈을 사용하는 시스템)
⚔️ 공격 벡터
직접적인 외부 공격보다는 특정 하드웨어 상태(느린 디스크 및 복구 중인 상태)에서 데이터 무결성이 깨지는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전 이상인지 확인하십시오.