Linux 7.2-rc7, 8년 동안 지속된 Use-After-Free를 유발하는 "고약한" 레이스 컨디션(Race Condition) 해결
요약
Linux 커널에서 8년 동안 지속되어 온 Use-After-Free(UAF) 취약점을 해결하는 패치가 적용되었습니다. PTDUMP와 vmap 사이의 레이스 컨디션으로 인해 발생하던 이 문제는 Syzbot에 의해 발견되었으며, 향후 안정적인 커널 버전으로 백포트될 예정입니다.
핵심 포인트
- 8년 동안 지속된 PTDUMP 관련 레이스 컨디션 해결
- 메모리 관리(MM) 과정에서의 Use-After-Free(UAF) 취약점 수정
- Syzbot을 통해 발견된 보안 결함 해결
- Linux 7.2-rc7에 병합 및 안정 버전 백포트 예정
Linux 7.2-rc7, 8년 동안 지속된 Use-After-Free를 유발하는 "고약한" 레이스 컨디션(Race Condition) 해결

밤사이 Git 활동에서 눈에 띈 것은 오래된 버그를 해결하는 내용을 포함한 메모리 관리 (MM) 수정 사항입니다. Andrew Morton은 MM 수정 사항에서 다음과 같이 언급했습니다:
"'mm: ptdump와 vmap pgtable 해제 사이의 레이스 컨디션으로 인한 UAF 수정'이라는 Lorenzo의 패치 시리즈가 있으며, 이는 ptdump 코드의 상당히 오래된 버그를 해결합니다."
이 상당히 오래된 버그는 2018년 3월 Linux 4.16을 위한 메모리 관리 변경 사항이 적용된 이후 지난 8년 동안 Linux 커널에 존재해 왔습니다. PTDUMP는 개발자가 보안 문제를 식별하고 메모리 보호를 검증하며 기타 디버깅 지원 및 감사를 돕기 위해 커널의 페이지 테이블 (page tables)을 사람이 읽을 수 있는 형태로 덤프하는 Linux 인터페이스입니다. 하지만 그곳에 Use-After-Free (UAF) 동작을 유발할 수 있는 고약한 레이스 컨디션 (race condition)이 있었음이 밝혀졌습니다.
Lorenzo Stoakes는 이제 병합된, 이 결함을 다루는 패치에서 PTDUMP 코드 주변의 상황을 다음과 같이 설명했습니다:
"현재 거대한 P4D, PMD 또는 PUD 엔트리를 매핑하려고 시도할 때 ptdump와 vmap 사이에 고약한 레이스 컨디션 (race condition)이 존재합니다.
...
이는 ptdump 페이지 테이블 워커 (page table walker)가 PUD, PMD 또는 PTE 페이지 테이블을 순회하던 중 해당 테이블이 해제되면 Use-After-Free (UAF)가 발생할 수 있음을 의미합니다."
이 UAF는 6월에 Syzbot에 의해 발견되었습니다. Lorenzo는 Claude Opus 4.8의 도움을 받아 David Carlier가 원래 고안했던 패치를 재작업하여 이 UAF 문제를 추적했습니다. 어쨌든 해당 문제는 이제 해결되어 Linux 7.2-rc7 이전에 병합되었으며, 향후 며칠 내에 안정적인(stable) Linux 커널 버전으로 백포트(back-ported)될 예정입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기