🇰🇷 한글 설명
Linux 커널의 x86 BPF 트램펄린 구현에서 128비트 인자 처리 시 스택 크기가 잘못 계산되는 취약점이 발견되었습니다. 이로 인해 인자 저장 과정에서 인접한 스택 슬롯을 덮어쓰는 메모리 오염이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 아주 큰 데이터를 처리할 때 데이터를 담을 공간을 실제보다 작게 준비하는 문제입니다. 이로 인해 데이터가 넘쳐흘러 옆에 있는 중요한 정보를 망가뜨릴 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf, x86: Fix trampoline stack size for 128-bit arguments
btf_distill_func_proto() accepts a function argument up to 16 bytes, so a
128-bit scalar such as __int128 reaches the x86 trampoline with
arg_size == 16. But the current implementation assumes an __int128
argument only needs one register, so the register save area is
under-allocated and save_args() overwrites adjacent stack slots.
Compute the register count from arg_size for all arguments to fix it.
📍 영향받는 시스템
128비트 인자(__int128)를 사용하는 x86 아키텍처 기반의 Linux 커널
⚔️ 공격 벡터
BPF 프로그램을 통해 특수하게 조작된 128비트 인자를 전달하여 스택 오버플로우 유도
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 보안 업데이트 버전인지 확인