🔍 CVE-2026-45837

7.8
CVSS Score
HIGH
2026-05-27
2026-06-26 19:09
✅ 완료

🇰🇷 한글 설명

Linux 커널의 bpf arena 구현에서 fork 호출 시 arena_vm_close 과정 중 Use-After-Free 취약점이 발생합니다. 부모 프로세스의 VMA가 해제된 후 자식 프로세스가 stale 포인터를 참조하여 메모리 오류를 유발할 수 있습니다.

💡 쉬운 설명

프로그램이 복제될 때 메모리 관리 정보가 제대로 전달되지 않아, 이미 사용이 끝난 메모리 주소를 다시 참조하면서 시스템 오류를 일으키는 문제입니다. 이로 인해 시스템이 충돌하거나 보안 위협이 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix use-after-free in arena_vm_close on fork arena_vm_open() only bumps vml->mmap_count but never registers the child VMA in arena->vma_list. The vml->vma always points at the parent VMA, so after parent munmap the pointer dangles. If the child then calls bpf_arena_free_pages(), zap_pages() reads the stale vml->vma triggering use-after-free. Fix this by preventing the arena VMA from being inherited across fork with VM_DONTCOPY, and preventing VMA splits via the may_split callback. Also reject mremap with a .mremap callback returning -EINVAL. A same-size mremap(MREMAP_FIXED) on the full arena VMA reaches copy_vma() through the following path: check_prep_vma() - returns 0 early: new_len == old_len skips VM_DONTEXPAND check prep_move_vma() - vm_start == old_addr and vm_end == old_addr + old_len so may_split is never called move_vma() copy_vma_and_data() copy_vma() vm_area_dup() - copies vm_private_data (vml pointer) vm_ops->open() - bumps vml->mmap_count vm_ops->mremap() - returns -EINVAL, rollback unmaps new VMA The refcount ensures the rollback's arena_vm_close does not free the vml shared with the original VMA.

📍 영향받는 시스템

Linux kernel (bpf arena 관련 기능이 활성화된 버전)

⚔️ 공격 벡터

로컬 공격자가 특수하게 조작된 bpf arena를 생성하고 fork를 호출하여 메모리 오류 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel