🇰🇷 한글 설명
Linux 커널의 DAMON(Data Access Monitor) 구성 요소에서 min_region_sz 값이 2의 거듭제곱이 아닌 경우를 허용하는 취약점이 발견되었습니다. damon_start() 함수를 통해 정렬되지 않은 주소 범위를 설정할 수 있어 메모리 관리 오류를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터 메모리를 관리하는 프로그램에서 규칙에 맞지 않는 잘못된 크기 값을 입력할 수 있는 오류가 있었습니다. 이로 인해 시스템이 메모리를 계산할 때 혼란을 겪거나 예상치 못한 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/damon/core: disallow non-power of two min_region_sz on damon_start()
Commit d8f867fa0825 ("mm/damon: add damon_ctx->min_sz_region") introduced
a bug that allows unaligned DAMON region address ranges. Commit
c80f46ac228b ("mm/damon/core: disallow non-power of two min_region_sz")
fixed it, but only for damon_commit_ctx() use case. Still, DAMON sysfs
interface can emit non-power of two min_region_sz via damon_start(). Fix
the path by adding the is_power_of_2() check on damon_start().
The issue was discovered by sashiko [1].
📍 영향받는 시스템
Linux kernel (DAMON 기능이 활성화된 버전)
⚔️ 공격 벡터
DAMON sysfs 인터페이스를 통해 damon_start() 함수에 2의 거듭제곱이 아닌 min_region_sz 값을 전달
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 damon_start() 내 is_power_of_2() 검증 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 커밋(c80f46ac228b 이후)이 포함된 버전인지 확인