🇰🇷 한글 설명
Linux 커널의 dm-crypt 모듈에서 dmcrypt_write() 함수의 루프가 무제한으로 실행될 수 있어 soft lockup이 발생하는 문제입니다. 이에 루프 내부에 cond_resched()를 추가하여 CPU를 양보하도록 수정되었습니다.
💡 쉬운 설명
디스크 암호화 기능이 너무 오랫동안 CPU를 독점해 시스템이 멈춘 것처럼 보일 수 있는 문제입니다. 커널 업데이트로 이 멈춤 현상이 해결됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
dm crypt: add cond_resched() to dmcrypt_write()
The loop in dmcrypt_write may be running for unbounded amount of time,
thus we need cond_resched() in it.
This commit fixes the following warning:
[ 3391.153255][ C12] watchdog: BUG: soft lockup - CPU#12 stuck for 23s! [dmcrypt_write/2:2897]
...
[ 3391.387210][ C12] Call trace:
[ 3391.390338][ C12] blk_attempt_bio_merge.part.6+0x38/0x158
[ 3391.395970][ C12] blk_attempt_plug_merge+0xc0/0x1b0
[ 3391.401085][ C12] blk_mq_submit_bio+0x398/0x550
[ 3391.405856][ C12] submit_bio_noacct+0x308/0x380
[ 3391.410630][ C12] dmcrypt_write+0x1e4/0x208 [dm_crypt]
[ 3391.416005][ C12] kthread+0x130/0x138
[ 3391.419911][ C12] ret_from_fork+0x10/0x18
📍 영향받는 시스템
dm-crypt 모듈을 사용하는 수정 이전의 Linux 커널 버전 전반
⚔️ 공격 벡터
로컬 사용자가 대량의 암호화 디스크 쓰기 작업을 유발해 시스템 응답 중단(DoS)을 일으킬 수 있음
🛡️ 대응 방법
배포판에서 제공하는 수정된 Linux 커널 패키지로 업데이트 후 재부팅
🔧 검증 코드
출력된 커널 버전이 배포판의 패치된 버전 이상인지 확인하고, dm_crypt 모듈이 로드되어 있지 않다면 이 취약점의 영향을 받지 않습니다.
uname -r && (grep -i dm_crypt /proc/modules 2>/dev/null || echo 'dm_crypt not loaded')