가장 찾기 어려운 커널 버그는 무엇일까? 레이스 컨디션, 레퍼런스 카운트 오류, 메모리 생명주기 버그다. 이런 버그들이 가장 오래 숨어있다. 개발자들은 수십 년 전에 도입된 취약점을 여전히 발견하고 수정하고 있다.
새로운 리눅스 커널이 더 안전한가? 그렇다. 새로운 버그는 더 빨리 수정된다. 하지만 개발자들은 여전히 수십 년 전에 도입된 취약점을 발견하고 고친다. 코드는 쓰인 시점에 안전해 보였지만, 시간이 지나면서 새로운 공격 벡터가 발견된다.
2025년의 커널 CVE
작동하는 개념 증명 익스플로잇이 공개와 함께 발표됐다. 공격 체인은 전송 재할당 중 레퍼런스 카운터를 조작해서 커널이 아직 사용 중인 메모리를 해제하게 만든다. use-after-free 취약점이다.
이런 종류의 버그가 Rust 통합이 중요한 이유다. Rust의 소유권 모델과 borrow checker는 이런 메모리 안전 버그를 컴파일 타임에 잡는다. C에서는 코드 리뷰와 정적 분석에 의존해야 한다. 인간은 실수한다.
커널 자기 보호
Kernel Self-Protection Project가 더 많은 익스플로잇 완화 기능을 업스트림으로 밀어넣고 있다. 하지만 방어는 항상 공격보다 한 발 느리다. 새로운 익스플로잇 기법이 발견되면 새로운 방어가 필요하다.
위험 기반 패칭과 AI 지원 분류가 대규모 수정 우선순위 지정을 더 쉽게 만들고 있다. 모든 CVE가 동등하지 않다. 실제 익스플로잇 가능성이 높은 것에 리소스를 집중해야 한다. 이것이 새로운 보안 운영의 방향이다.