🇰🇷 한글 설명
Linux 커널의 RISC-V 아키텍처에서 BPF extable 처리 오류로 인해 발생하는 취약점입니다. 특정 상황에서 예외 처리 핸들러가 누락되어 시스템 오류(oops)가 발생하거나, 검증기(verifier)의 오류를 악용하여 레지스터의 잔류 데이터를 맵을 통해 유출할 수 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 운영체제인 리눅스에서 특정 하드웨어(RISC-V)를 사용할 때 보안 검사를 우회하여 중요한 정보를 몰래 빼낼 수 있는 결함입니다. 이 결함을 이용하면 시스템이 멈추거나 데이터가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf, riscv: Fix extable handling for arena load_acquire
emit_atomic_ld_st() returns 1 to have build_body() skip the zext after
a sub-word load_acquire. The caller does "ret = ret ?:
add_exception_handler(...)", which skips add_exception_handler() on any
non-zero ret, so the extable entry is missing and a faulting
PROBE_ATOMIC load_acquire oopses.
REG_DONT_CLEAR_MARKER leaves rd stale on fault, and the verifier still
thinks the load overwrote it, so a program can leak it through a map.
Check ret >= 0 before calling add_exception_handler(), and pass rd for
LOAD_ACQ so the fault zeroes rd like a PROBE_MEM load. Return ret
unchanged for the zext skip.
📍 영향받는 시스템
RISC-V 아키텍처를 사용하는 Linux 커널 (BPF 기능 활성화 시)
⚔️ 공격 벡터
악의적인 BPF 프로그램을 로드하여 예외 처리 로직을 우회하고 레지스터의 잔류 데이터를 맵으로 유출
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력 결과에 RISC-V 아키텍처 정보가 포함되어 있는지 확인하고, 커널 버전을 최신 보안 패치 버전과 비교하십시오.
uname -a && grep -i 'riscv' /proc/cpuinfo 2>/dev/null