🇰🇷 한글 설명
리눅스 커널의 userfaultfd 기능에서 writeprotect와 exit_mmap() 함수 간의 레이스 컨디션 취약점이 발견되었습니다. 프로세스가 종료되어 가상 메모리 영역(VMA)이 제거되는 시점에 동시에 특정 함수가 호출될 경우 메모리 관리 오류가 발생할 수 있습니다.
💡 쉬운 설명
프로그램이 종료되는 찰나의 순간에 메모리를 관리하는 두 작업이 서로 충돌하여 시스템 오류를 일으킬 수 있는 문제입니다. 이 충돌을 이용하면 시스템의 안정성을 해치거나 보안 문제를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
userfaultfd: fix a race between writeprotect and exit_mmap()
A race is possible when a process exits, its VMAs are removed by
exit_mmap() and at the same time userfaultfd_writeprotect() is called.
The race was detected by KASAN on a development kernel, but it appears
to be possible on vanilla kernels as well.
Use mmget_not_zero() to prevent the race as done in other userfaultfd
operations.
📍 영향받는 시스템
userfaultfd 기능을 사용하는 리눅스 커널 (패치 적용 전 버전)
⚔️ 공격 벡터
프로세스 종료와 메모리 보호 기능 호출을 정밀하게 타이밍을 맞춰 실행하는 레이스 컨디션 공격
🛡️ 대응 방법
mmget_not_zero()를 사용하여 레이스 컨디션을 방지하도록 업데이트된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 보안 패치 버전인지 확인합니다.