Title: Copy Fail: 732 Bytes to Root on Every Major Linux Distributions
- Copy Fail (CVE-2026-31431)는 리눅스 커널의 authencesn 암호화 템플릿에서 발생하는 치명적인 취약점으로, 권한이 없는 로컬 사용자가 루트 권한을 획득할 수 있게 합니다. 732바이트 크기의 익스플로잇으로 setuid 바이너리를 수정하여 Ubuntu, Amazon Linux, RHEL, SUSE와 같은 주요 리눅스 배포판에서 루트 권한을 얻을 수 있습니다.
- 이 취약점은 페이지 캐시 페이지가 쓰기 가능한 scatterlist에 배치되는 로직 오류에서 비롯되며, 이를 통해 읽기 가능한 모든 파일의 페이지 캐시에 제어된 4바이트 쓰기가 가능해집니다. 이는 일반적인 쓰기 경로를 우회하므로 디스크 상의 체크섬이 변경되지 않은 상태로 유지되어 익스플로잇이 은밀하게 수행됩니다.
- 익스플로잇은 AF_ALG 소켓 유형과 splice() 시스템 호출을 활용하여 페이지 캐시 페이지를 암호화 하위 시스템으로 전달합니다. 그 후 authencesn 알고리즘의 구현체가 의도된 출력 버퍼를 넘어 이러한 페이지 캐시 페이지에 데이터를 씁니다.
이 버그는 배포판과 아키텍처 전반에 걸쳐 이식성이 뛰어나고, 최소한의 코드(짧은 Python 스크립트)만 필요하며, 페이지 캐시가 시스템 전체에서 공유되기 때문에 컨테이너를 탈출할 수도 있습니다. - 근본 원인은 AF_ALG AEAD 지원, 페이지 캐시 페이지를 노출하는 splice() 경로, 그리고 특히 2017년 인플레이스(in-place) 최적화 이후 authencesn이 대상 버퍼를 스크래치 공간으로 사용하는 방식이 결합된 데 있습니다.
익스플로잇은 /usr/bin/su와 같은 일반적인 setuid 바이너리를 대상으로 합니다. 바이너리의 일부를 셸코드로 덮어쓰고, 손상된 페이지 캐시에서 바이너리가 로드될 때 루트 권한으로 실행되도록 합니다. - 메인라인 커널에 적용된 수정 사항은 AF_ALG AEAD를 out-of-place 작업으로 되돌려 소스 및 대상 scatterlist를 효과적으로 분리하고 체인된 페이지 캐시 페이지에 쓰는 기능을 제거했습니다.
해결 방법에는 커널 패치, 배포판 패키지 업데이트가 포함되며, 즉각적인 완화 조치로는 seccomp를 통해 AF_ALG 소켓 생성을 차단하거나 algif_aead 모듈을 블랙리스트에 추가하는 방법이 있습니다. - 이 취약점은 Theori의 Taeyang Lee의 초기 통찰력을 바탕으로, AI 지원 보안 연구 도구를 사용한 Xint Code 연구팀에 의해 발견되었습니다.

1 week ago
12

!["아아 팔아 갖고는"…치킨·볶음밥까지 내놓은 커피전문점 '속사정' [트렌드+]](https://img.hankyung.com/photo/202604/01.43949627.1.jpg)






English (US) ·