[CVE] CVE 분석 · 작성: 2026-07-20 03:10:34 · 수정: 2026-07-20 03:11:15 · 조회 5
sudo의 명령줄 파싱 코드에 있던 힙 버퍼 오버플로우 취약점으로, sudo를 실행할 수 있는(즉 거의 모든) 로컬 사용자가 별도의 sudoers 권한 없이도 root 권한을 얻을 수 있었다. 2021년 공개 당시 거의 모든 주요 리눅스 배포판에 영향을 줬다.
sudo는 sudoedit(또는 -s, -i 옵션) 실행 시 명령줄 인자에 포함된 백슬래시를 이스케이프 처리하는 로직이 있다. 이때 인자의 길이를 계산하는 함수가 인자가 백슬래시로 끝나는 경우를 제대로 처리하지 못해서, 실제보다 작은 버퍼를 할당한 뒤 그보다 큰 데이터를 복사하는 힙 오버플로우가 발생했다.
sudoedit -s 뒤에 백슬래시 하나로 끝나는 인자를 조합하면, 커맨드라인 인자를 다시 조립하는 과정에서 힙 메모리에 인접한 데이터를 덮어쓸 수 있는 상태가 만들어진다. 여기에 환경 변수(argv[0]을 포함한 인자 구성)를 정교하게 조작해서 힙 레이아웃을 원하는 대로 배치하면, 결국 임의 코드 실행까지 이어진다.
sudo 1.9.5p2에서 패치됐다. 영향 여부는 버전 확인으로 간단히 체크할 수 있다.
sudo -V | head -n1
이 사건은 몇 줄 안 되는 길이 계산 실수가 어떻게 로컬 사용자 전체를 root로 만들 수 있는지 보여주는 대표 사례로, 코드 리뷰에서 문자열 길이·버퍼 크기 계산 로직을 특히 꼼꼼히 봐야 하는 이유를 잘 설명해준다.