🇰🇷 한글 설명
리눅스 커널의 BPF 링 버퍼 처리 과정에서 발생하는 레이스 컨디션 취약점입니다. bpf_ringbuf_commit() 호출 시 예약된 irq_work가 실행되기 전에 링 버퍼가 해제되어, 해당 작업이 이미 해제된 메모리에 접근할 수 있는 문제가 있습니다.
💡 쉬운 설명
컴퓨터가 작업을 처리하기 전에 필요한 메모리를 미리 치워버려서 발생하는 오류입니다. 이로 인해 시스템이 잘못된 메모리 주소를 참조하게 되어 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Sync pending IRQ work before freeing ring buffer
Fix a race where irq_work can be queued in bpf_ringbuf_commit()
but the ring buffer is freed before the work executes.
In the syzbot reproducer, a BPF program attached to sched_switch
triggers bpf_ringbuf_commit(), queuing an irq_work. If the ring buffer
is freed before this work executes, the irq_work thread may accesses
freed memory.
Calling `irq_work_sync(&rb->work)` ensures that all pending irq_work
complete before freeing the buffer.
📍 영향받는 시스템
Linux Kernel (BPF ring buffer를 사용하는 환경)
⚔️ 공격 벡터
특정 BPF 프로그램을 통해 의도적으로 레이스 컨디션을 유발하여 메모리 손상 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 취약점이 해결된 최신 패치 버전인지 확인