Rust 빌림 검사기의 11년 미해결 심각한 결함 발견
Key Point
Rust의 메모리 안전성 보장을 무너뜨리는 심각한 컴파일러 결함이 11년간 미발견이었으므로, 현재 Rust 코드의 안전성이 영향을 받을 수 있다.
핵심 요약
- Rust의 빌림 검사기에서 공변 필드 할당을 통해 구조체의 생명주기 제약을 우회하는 결함이 발견됐다.
- 타입이 'static 경계를 요구하지만, 필드에 할당할 때는 이 제약이 검사되지 않아 짧은 생명주기의 참조를 'static 참조로 위장할 수 있다.
- Drop 구현부에서 컴파일러가 보장하지 않은 'static 생명주기를 가정하고 코드를 실행하면 해제된 메모리 접근(use-after-free) 및 스택 메모리 접근 오류가 발생한다.