🇰🇷 한글 설명
리눅스 커널의 md(Multiple Device) 드라이버에서 memalloc_noio 범위가 적절히 제한되지 않아 발생하는 취약점입니다. 특정 작업이 메모리 할당 플래그를 비정상적으로 유지한 채 사용자 공간으로 복귀할 수 있어 시스템 안정성에 영향을 줄 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리 관리 규칙이 엉켜서, 특정 작업이 허용되지 않은 방식으로 메모리를 계속 사용할 수 있는 상태가 되는 문제입니다. 이로 인해 시스템이 예상치 못한 방식으로 동작하거나 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
md: scope memalloc_noio to allocation critical sections
Storing a memalloc_noio_save() token in mddev->noio_flags lets one task
save the token and another task restore it. With concurrent suspend sysfs
writes, task A can enter PF_MEMALLOC_NOIO, return to userspace still in
that scope, and later task B can restore A's saved token.
Avoid tying the token lifetime to mddev. Keep mddev_suspend() and
mddev_resume() only responsible for array suspension, and enter
PF_MEMALLOC_NOIO only in the MD paths that allocate memory after the array
has been suspended. Restore the token before resuming the array.
A reproducer repeatedly writes suspend_lo and suspend_hi from concurrent
workers and checks each worker's /proc/self/stat flags before and after the
sysfs write.
📍 영향받는 시스템
Linux kernel (md driver component)
⚔️ 공격 벡터
동시적인 sysfs suspend 쓰기 작업을 통한 PF_MEMALLOC_NOIO 플래그 오용
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.