CVE-2026-74544 in Linux
요약
\~에 의해 VulDB • 2026. 08. 15.
리눅스 커널에서 다음 취약점이 해결되었습니다.
net/sched: cls_u32: 오프셋 시프트 범위 초과(shift-out-of-bounds) 방지를 위한 offshift 검증
u32_change() 함수는 사용자 제공 값인 tc_u32_sel.offshift(부호 없는 바이트, 0-255 범위의 unsigned char)를 경계 검사 없이 커널의 knode 객체로 복사합니다. 이후 TC_U32_VAROFFSET 플래그가 설정된 상태에서 패킷이 u32_classify() 함수에 도달하면 `ntohs(offmask & *data) >> offshift` 식을 평가하게 되는데, 이때 왼쪽 피연산자는 16비트 값이지만 32비트 정수로 승격됩니다. C11 표준의 6.5.7p3항에 따르면 offshift가 32 이상인 경우 정의되지 않은 동작(undefined behavior)이 발생하며, 이는 비특권 사용자가 사용자/네임스페이스를 통해 유발할 수 있습니다.
UBSAN: net/sched/cls_u32.c:236:43에서 shift-out-of-bounds 감지 시프트 지수 32가 32비트 타입 int에 대해 너무 큽니다.
u32_change() 함수 내에서 필터 생성 시 offshift >= 16인 경우 이를 거부함으로써 이 문제를 해결합니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.