CVE-2026-3888: Ubuntu의 숨겨진 권한 상승 취약점
Qualys 위협 분석팀이 Ubuntu Desktop 24.04 이상의 기본 설치 환경에서 발생하는 로컬 권한 상승(LPE) 취약점을 발견했습니다. CVE-2026-3888이라 명명된 이 결함은 snap-confine과 systemd-tmpfiles라는 두 가지 표준 시스템 컴포넌트의 의도하지 않은 상호작용을 통해, 권한 없는 로컬 공격자가 완전한 루트 권한을 획득할 수 있게 해줍니다.
익스플로잇에는 특정 시간 윈도우(10~30일)가 필요하지만, 성공할 경우 시스템 전체가 완전히 손상됩니다.
공격 대상은 누구인가
snapd와 Snap 생태계 이해하기
snapd는 Ubuntu의 전체 Snap 생태계를 관리하는 백그라운드 서비스입니다. Snap 패키지의 발견, 설치, 업데이트, 제거를 담당하는데요, Snap 패키지란 의존성을 함께 포함한 자체 완결형 애플리케이션 번들입니다. Canonical이 이 포맷을 설계한 이유는 의존성 충돌을 해결하고 개발자들에게 Ubuntu 버전에 관계없이 단일한 패키징 대상을 제공하기 위해서였습니다.
snapd는 단순한 패키지 관리자가 아닙니다. 각 Snap 애플리케이션이 시스템의 어떤 리소스에 접근할 수 있는지를 규제하는 권한 모델도 함께 시행합니다. 즉, 패키지 관리자이면서 동시에 보안 정책 엔진인 셈이죠.
취약점의 두 주역: snap-confine과 systemd-tmpfiles
snap-confine: Snap 앱이 실행되기 전에 샌드박스를 구성하는 setuid root 바이너리입니다. 마운트 네임스페이스 격리, cgroup 적용, AppArmor 정책 로드, seccomp 필터링까지 Snap을 경계 내에 묶어두는 전체 격리 스택을 담당합니다. 일반 사용자를 위해 커널 수준의 격리를 설정하려면 상승된 권한이 필요하므로, snap-confine은 중요한 신뢰 경계에 위치합니다. 이 컴포넌트의 버그는 곧 권한 상승 취약점으로 이어질 수 있기에, 지속적인 snapd 패칭이 현실적 우선순위가 됩니다.
systemd-tmpfiles: /tmp, /run, /var/tmp 같은 임시 디렉토리의 생명주기를 관리합니다. 부팅 시 올바른 소유권으로 이들 디렉토리를 생성하고, 타이머에 따라 오래된 파일들을 정리하죠. 설정은 /etc/tmpfiles.d/, /run/tmpfiles.d/, /usr/lib/tmpfiles.d/ 아래의 드롭인 파일들에 저장됩니다. tmpfiles 규칙이 부적절하게 설정되면 로컬 권한 상승 경로가 열리고, 심볼릭 링크 레이스(symlink race)와 로컬 권한 상승 공격의 문을 활짝 열어주게 됩니다.
익스플로잇 메커니즘
CVE-2026-3888의 심각도는 높음(High)으로, CVSS v3.1 점수는 10점 만점에 7.8입니다. 벡터 문자열(AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H)을 보면 로컬 공격 벡터이며 공격 복잡도가 높고, 낮은 수준의 권한이 필요하며 사용자 상호작용은 필요 없습니다. 범위(Scope)가 변경되는데, 이는 성공한 익스플로잇이 취약한 컴포넌트 너머의 리소스까지 영향을 미칠 수 있다는 뜻입니다. 기밀성, 무결성, 가용성 모두에 높은 수준의 영향을 미칩니다.
CVSS 점수상 높은 심각도로 표시되지만, 익스플로잇 체인에 내재된 시간 지연 메커니즘 때문에 공격 복잡도가 높은 편입니다. 공격자는 다음과 같은 과정을 거쳐야 합니다:
- 시스템의 정리 데몬이 /tmp의 오래된 데이터를 삭제할 때까지 기다립니다. Ubuntu 24.04에서는 30일, 이후 버전에서는 10일입니다.
- snap-confine이 필요로 하는 /tmp/.snap 디렉토리가 삭제되면, 공격자가 악의적인 페이로드를 포함한 디렉토리를 다시 만듭니다.
- 다음 번 샌드박스 초기화 시, snap-confine이 이 파일들을 루트 권한으로 바인드 마운트하며, 이를 통해 권한이 있는 컨텍스트에서 임의 코드를 실행할 수 있게 됩니다.
영향받는 버전 및 해결 방법
다음 snapd 패키지 버전들이 취약합니다. 조직은 즉시 패치된 릴리스로 업그레이드해야 합니다:
- Ubuntu 24.04 LTS: 2.73+ubuntu24.04.2 이전 버전
- Ubuntu 25.10 LTS: 2.73+ubuntu25.10.1 이전 버전
- Ubuntu 26.04 LTS (개발 버전)