🇰🇷 한글 설명
리눅스 커널의 perf/core 구성 요소에서 perf_event_bpf_output 함수가 perf_output_begin 매개변수를 잘못 호출하여 발생하는 스택 범위 초과(stack-out-of-bounds) 취약점입니다. 이로 인해 메모리 덮어쓰기가 발생하여 시스템 안정성을 해치거나 보안 위협이 될 수 있습니다.
💡 쉬운 설명
리눅스 시스템의 성능 측정 도구가 데이터를 처리하는 과정에서 정해진 메모리 공간보다 더 많은 데이터를 쓰려고 시도하는 오류입니다. 이로 인해 컴퓨터의 중요한 정보가 담긴 메모리 영역이 망가질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
perf/core: Fix perf_output_begin parameter is incorrectly invoked in perf_event_bpf_output
syzkaller reportes a KASAN issue with stack-out-of-bounds.
The call trace is as follows:
dump_stack+0x9c/0xd3
print_address_description.constprop.0+0x19/0x170
__kasan_report.cold+0x6c/0x84
kasan_report+0x3a/0x50
__perf_event_header__init_id+0x34/0x290
perf_event_header__init_id+0x48/0x60
perf_output_begin+0x4a4/0x560
perf_event_bpf_output+0x161/0x1e0
perf_iterate_sb_cpu+0x29e/0x340
perf_iterate_sb+0x4c/0xc0
perf_event_bpf_event+0x194/0x2c0
__bpf_prog_put.constprop.0+0x55/0xf0
__cls_bpf_delete_prog+0xea/0x120 [cls_bpf]
cls_bpf_delete_prog_work+0x1c/0x30 [cls_bpf]
process_one_work+0x3c2/0x730
worker_thread+0x93/0x650
kthread+0x1b8/0x210
ret_from_fork+0x1f/0x30
commit 267fb27352b6 ("perf: Reduce stack usage of perf_output_begin()")
use on-stack struct perf_sample_data of the caller function.
However, perf_event_bpf_output uses incorrect parameter to convert
small-sized data (struct perf_bpf_event) into large-sized data
(struct perf_sample_data), which causes memory overwriting occurs in
__perf_event_header__init_id.
📍 영향받는 시스템
Linux Kernel (perf/core 관련 모듈이 포함된 버전)
⚔️ 공격 벡터
로컬 권한을 가진 공격자가 특수하게 조작된 BPF 프로그램을 실행하여 메모리 오버플로우 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트 (commit 267fb27352b6 포함 버전)
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.