🇰🇷 한글 설명
Linux 커널의 DAMON mtier 샘플 모듈에서 주소 범위 매개변수가 유효하지 않을 경우 적절히 처리하지 못하는 취약점이 발견되었습니다. DAMON_DEBUG_SANITY 옵션이 활성화된 경우, 잘못된 주소 범위로 인해 커널 경고(WARN_ONCE)가 발생할 수 있습니다. 이 문제는 주소 범위 검증 로직을 강화하여 해결되었습니다.
💡 쉬운 설명
컴퓨터의 메모리를 관리하는 프로그램에서 잘못된 주소 범위를 입력했을 때, 이를 미리 걸러내지 못해 시스템에 경고 메시지가 뜨는 문제입니다. 잘못된 설정값이 들어오면 시스템이 비정상적인 동작을 할 수 있는 상태를 유발합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
samples/damon/mtier: fail early if address range parameters are invalid
The comment on top of `struct damon_region` clearly says that
For any use case, @ar should be non-zero positive size.
which is now verified in damon_verify_new_region() if the kernel is built
with DAMON_DEBUG_SANITY.
The WARN_ONCE() can be triggered if the mtier sample module is enabled
before node{0,1}_{start,end}_addr have been properly initialized, which is
obviously not good.
------------[ cut here ]------------
start 0 >= end 0
WARNING: mm/damon/core.c:217 at damon_new_region+0xf4/0x118, CPU#59: bash/341468
Call trace:
damon_new_region+0xf4/0x118 (P)
damon_set_regions+0xfc/0x3c0
damon_sample_mtier_build_ctx+0xe8/0x3a8
damon_sample_mtier_start+0x1c/0x90
damon_sample_mtier_enable_store+0x98/0xb0
param_attr_store+0xb4/0x128
module_attr_store+0x2c/0x50
sysfs_kf_write+0x58/0x90
kernfs_fop_write_iter+0x16c/0x238
vfs_write+0x2c0/0x370
ksys_write+0x74/0x118
__arm64_sys_write+0x24/0x38
invoke_syscall+0xa8/0x118
el0_svc_common.constprop.0+0x48/0xf0
do_el0_svc+0x24/0x38
el0_svc+0x54/0x370
el0t_64_sync_handler+0xa0/0xe8
el0t_64_sync+0x1ac/0x1b0
---[ end trace 0000000000000000 ]---
Note that the same issue can happen if detect_node_addresses is true, and
node 0 or 1 is memoryless. Fix it together by checking the validity of
parameters right before damon_new_region() and fail early if they're
invalid.
📍 영향받는 시스템
DAMON_DEBUG_SANITY 옵션이 활성화된 Linux 커널 (mtier 샘플 모듈 사용 시)
⚔️ 공격 벡터
sysfs를 통해 잘못된 메모리 주소 범위 매개변수를 입력하여 커널 경고를 유발함
🛡️ 대응 방법
DAMON_DEBUG_SANITY가 활성화된 환경에서 damon_verify_new_region()을 통해 주소 범위를 검증하도록 커널을 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인하십시오.