🔍 CVE-2026-93125

7.8
CVSS Score
HIGH
2026-09-17
2026-10-30 13:20
✅ 완료

🇰🇷 한글 설명

Linux 커널의 BPF 구현에서 rdonly_buf_size 또는 rdwr_buf_size kfunc 인자가 u32 최대값을 초과할 때 이를 적절히 제한하지 않는 취약점이 발견되었습니다. 이로 인해 64비트 값이 32비트로 절단되어 검증기(verifier)가 잘못된 메모리 크기를 기록하게 되며, 이는 보안 검증 우회로 이어질 수 있습니다.

💡 쉬운 설명

프로그램이 메모리 크기를 입력할 때 너무 큰 숫자를 넣으면, 컴퓨터가 이를 잘못 계산하여 실제 크기보다 훨씬 크게 인식하는 오류입니다. 이 오류를 이용하면 보안 검사를 피해 시스템의 중요한 메모리 영역에 접근할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: bpf: Reject rdonly/rdwr_buf_size kfunc arguments that exceed u32 max check_kfunc_args() detects a kfunc argument named rdonly_buf_size or rdwr_buf_size and stores reg->var_off.value into meta->r0_size, a u64, and does not bound it. check_kfunc_call() later copies that value into the returned register's mem_size field: meta->r0_size = reg->var_off.value; ... regs[BPF_REG_0].mem_size = meta.r0_size; regs[BPF_REG_0].mem_size is u32. A constant whose upper 32 bits are set gets truncated instead of causing a load-time rejection, so the verifier records a PTR_TO_MEM register with an approximately 4 GiB mem_size for whatever allocation the kfunc returned. A later access check against that register uses the truncated, wrong bound. Reject rdonly_buf_size/rdwr_buf_size values that exceed U32_MAX at the point meta->r0_size is set.

📍 영향받는 시스템

Linux kernel (BPF 관련 kfunc를 사용하는 시스템)

⚔️ 공격 벡터

u32 범위를 초과하는 특수하게 조작된 kfunc 인자 값을 전달하여 BPF 검증기 우회

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 kfunc 인자 값에 대한 u32 범위 검증 로직을 적용해야 합니다.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel