🇰🇷 한글 설명
리눅스 커널의 uclamp 기능에서 버킷 크기를 계산할 때 반올림 나눗셈 오류로 인해 경계 외 메모리 접근(Out-of-bound access)이 발생할 수 있는 취약점입니다. 특정 설정에서 작업(task)의 clamp 값이 허용된 버킷 인덱스 범위를 벗어나 메모리 오류를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터가 작업을 분류할 때 칸을 나누는 계산 방식에 실수가 있어, 정해진 칸을 벗어난 곳에 데이터를 적으려고 시도하는 문제입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sched: Fix out-of-bound access in uclamp
Util-clamp places tasks in different buckets based on their clamp values
for performance reasons. However, the size of buckets is currently
computed using a rounding division, which can lead to an off-by-one
error in some configurations.
For instance, with 20 buckets, the bucket size will be 1024/20=51. A
task with a clamp of 1024 will be mapped to bucket id 1024/51=20. Sadly,
correct indexes are in range [0,19], hence leading to an out of bound
memory access.
Clamp the bucket id to fix the issue.
📍 영향받는 시스템
uclamp 기능을 사용하는 특정 버전의 Linux Kernel
⚔️ 공격 벡터
조작된 clamp 값을 가진 프로세스를 생성하여 커널 메모리 경계 외 접근 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인