리눅스 커널에서 새로운 권한 상승 취약점 ‘StackRot’ 발견

출처: The Hacker News - Link to Article

리눅스 커널에서 새로운 보안 취약점이 발견되었으며, 이를 통해 사용자가 대상 호스트에서 특권 상승을 할 수 있습니다.

이 취약점은 ‘StackRot’이라고 명명되었으며, CVE-2023-3269와 CVSS 점수 7.8로 식별되었습니다. 이 취약점은 리눅스 6.1부터 6.4까지의 버전에 영향을 미칩니다. 현재까지 이 취약점이 악용되었다는 증거는 없습니다.

중국의 베이징 대학 보안 연구원인 Ruihan Li는 “StackRot은 메모리 관리 하위 시스템에서 발견된 리눅스 커널 취약점으로, 거의 모든 커널 구성에 영향을 미치며 최소한의 능력으로도 트리거할 수 있습니다"라고 말했습니다.

그러나, “maple 노드는 RCU 콜백을 사용하여 해제되며, RCU 그레이스 기간 이후에 실제 메모리 할당 해제가 지연됩니다. 따라서 이 취약점을 악용하는 것은 도전적인 작업으로 간주됩니다"라고 그는 강조했습니다.

2023년 6월 15일에 책임 있는 공개가 이루어진 후, Linus Torvalds를 주도로 한 두 주간의 노력 끝에, 2023년 7월 1일 현재로서 안정 버전 6.1.37, 6.3.11 및 6.4.1에서 문제가 해결되었습니다.

해당 버그에 대한 proof-of-concept (PoC) 공격 코드와 기술적인 세부 정보가 이번 달 말까지 공개될 예정입니다.

이 취약점은 사실상 maple 트리라는 데이터 구조에 기인하며, 이는 리눅스 커널 6.1에서 red-black 트리(rbtree)를 대체하기 위해 도입되었습니다. maple 트리는 가상 메모리 영역(VMA)을 관리하고 저장하기 위한 것으로, 디스크의 파일 내용이나 프로그램이 실행 중에 사용하는 메모리와 같은 가상 주소의 연속 범위를 의미합니다.

구체적으로 이는 “maple 트리가 MM 쓰기 잠금을 제대로 획득하지 않고 노드 교체를 수행할 수 있다"는 사용 후 메모리 오용 버그로 설명됩니다. 이는 로컬 사용자가 커널을 침해하고 특권을 상승시킬 수 있는 것을 이용하는 것입니다.

Torvalds는 “어쨌든, 나는 실제로 스택 확장 코드를 mm/mmap.c와 mm/memory.c 사이에서 분리된 새로운 파일로 옮기고 싶다고 생각한다. 그러나 이는 초기 maple 트리 VMA 도입에 다시 포함되어야 하기 때문에 패치를 상대적으로 최소한으로 유지하려고 노력했다"라고 언급하였습니다.


본 블로그 포스팅은 Hacker News의 기사를 요약한 내용입니다. 자세한 내용 및 전문 기사는 원문 링크를 참조해 주세요.