CVE-2026-31431, 애칭 '카피 페일(Copy Fail)'은 2017년부터 그림자 속에 숨어 있던 리눅스 커널의 치명적 취약점으로, 이제서야 제대로 된 보안 관심을 받고 있다. 8년 묵은 버그가 '안전하다'는 말과 얼마나 잘 어울리는지.
리눅스 사용자가 아닌 사람도 이해할 수 있게 풀어보자. 컴퓨터 메모리를 선생님이 실시간으로 성적을 기록하는 칠판이라고 상상해보자. 학생들은 분필이나 지우개를 사용할 수 없어서 부정행위를 할 수 없다. 카피 페일은 몰래 분필과 지우개를 손에 넣어 선생님이 보지 않을 때 자기 성적만 바꾸는 교활한 학생과 같다. 다만 여기서 '성적'은 시스템의 보안이다.
본질적으로 카피 페일은 특정 데이터 유형의 보안을 처리하는 리눅스 커널의 결함이다. 기본 시스템 접근 권한만 있는 공격자가 컴퓨터 RAM의 중요한 데이터 조각을 변경할 수 있다. 변경된 데이터는 시스템을 속여 공격자를 루트 사용자로 인식하게 만들어 완전한 제어권을 부여한다. 마치 청소부가 사장의 명패를 가져다가 자기 벽장 옆에 붙여 놓고 모두가 사장인 줄 알게 만드는 것과 같다.
정밀한 타이밍이나 복잡한 순서가 필요한 많은 리눅스 취약점과 달리, 카피 페일은 상쾌할 정도로 직관적이다. AF_ALG 소켓 인터페이스와 splice() 시스템 콜을 악용하여 읽기 가능한 모든 파일의 커널 페이지 캐시에서 단 4바이트를 덮어쓴다. 거기서 공격자는 메모리에 있는 setuid 바이너리(예: su 명령어)를 수정하여 루트 접근 권한을 얻을 수 있다. 타이밍에 의존한 재시도가 필요 없으며, 안정적이고 직선적인 익스플로잇이다.
카피 페일은 리눅스 커널 버전 4.14부터 6.19.12까지 영향을 미친다. 맞다. 2017년부터 현재까지의 커널이다. 피해를 몇 년으로 제한할 이유가 없으니까.
Xint 코드 연구팀에 따르면, "이 발견은 AI의 도움을 받았지만, Theori 연구원 Taeyang Lee가 리눅스 암호 서브시스템이 페이지 캐시 백업 데이터와 상호작용하는 방식을 연구하면서 얻은 통찰에서 시작되었습니다." 즉, 인간이 초기 아이디어를 냈고 AI가 검색을 확장하는 데 도움을 줬다. 물론 AI가 관여했다.
해결책은 간단하다: 커널을 최신 버전으로 업데이트하라. 패치되었는지 확인하려면 다음 명령어를 실행하라:
```
l kmod grep -qE '^algif_aead ' /proc/modules && echo "영향 받는 모듈이 로드됨" || echo "영향 받는 모듈이 로드되지 않음"
```
"영향 받는 모듈이 로드되지 않음"이 뜨면 괜찮다. "영향 받는 모듈이 로드됨"이 뜨면 시스템을 업데이트하라. 업데이트 후에도 여전히 로드되어 있다면, 다음 명령어로 algif_aead 모듈을 비활성화하라:
```
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
```
이제 카피 페일로부터 보호받기에 충분한 정보를 알게 되었다. 천만에.