🇰🇷 한글 설명
Linux 커널의 BPF 헬퍼 함수 bpf_map_lookup_percpu_elem()에서 rcu_read_lock_trace_held() 검사가 누락되어 있었습니다. BPF JIT가 비활성화되었거나 32비트 호스트에서 sleepable BPF 프로그램이 이 함수를 호출하면 잘못된 잠금 상태에서 커널 경고가 발생할 수 있어, 해당 검사를 추가하여 수정했습니다.
💡 쉬운 설명
리눅스 커널 내부의 한 기능에서 잠금(lock) 확인 절차가 빠져 있던 문제입니다. 이로 인해 특정 조건에서 커널이 경고를 띄우거나 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Check rcu_read_lock_trace_held() in bpf_map_lookup_percpu_elem()
bpf_map_lookup_percpu_elem() helper is also available for sleepable bpf
program. When BPF JIT is disabled or under 32-bit host,
bpf_map_lookup_percpu_elem() will not be inlined. Using it in a
sleepable bpf program will trigger the warning in
bpf_map_lookup_percpu_elem(), because the bpf program only holds
rcu_read_lock_trace lock. Therefore, add the missed check.
📍 영향받는 시스템
패치 이전의 Linux 커널 (BPF 기능을 사용하는 환경, 32비트 호스트 및 BPF JIT 비활성화 환경)
⚔️ 공격 벡터
로컬 사용자가 sleepable BPF 프로그램을 통해 해당 헬퍼 함수를 호출하여 커널 경고 또는 서비스 불안정을 유발할 수 있습니다.
🛡️ 대응 방법
배포판 벤더가 제공하는 최신 커널 보안 업데이트를 설치하고 재부팅하십시오.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지에서 해당 CVE의 수정된 커널 버전과 비교하여, 같거나 높으면 패치가 적용된 것입니다.