요약
CVE-2026-3888은 Ubuntu Desktop 24.04 이상에 설치된 기본 패키지 snap-confine의 잘못된 구현과 systemd-tmpfiles의 사용으로 인해 발생하는 권한 상승(Local Privilege Escalation, LPE) 취약점입니다. 이 취약점은 snap-confine이 systemd-tmpfiles와 경쟁하며 사용자 권한으로 생성한 파일을 root 권한으로 덮어쓸 수 있습니다. 공격자는 이 기능을 악용하여 root 권한을 획득할 수 있습니다.
CVSS v3.1 점수:
- 기본 점수: 7.8 (High)
- 벡터 문법: AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
- 공격 벡터: 로컬 (Local)
- 공격 복잡도: 높음 (High)
- 사용자 권한: 낮음 (Low)
- 상호작용 요청: 존재함 (None)
- 변경 영향: 변경 (Changed)
- 기밀성/무결성/가용성 영향: 높음 (High)
기술적 분석
1. 취약점 기본 및 취약 버전
영향 받는 버전
- Ubuntu Desktop 24.04 LTS: snapd 버전 2.73+ubuntu24.04.2 이상
- Ubuntu 25.10 LTS: snapd 버전 2.73+ubuntu25.10.1 이상
- Ubuntu 26.04 LTS (Dev): snapd 버전 2.74.1+ubuntu26.04.1 이상
- Upstream snapd: 2.75 버전 이상
영향 없는 버전 (16.04–22.04 LTS)
- 기본 설치 환경에서는 취약하지 않음
- 데스크톱 경험자용 설치 환경에서 snap-confine의 잘못된 로직과 기본 설정으로 인해 권한 상승 취약점이 발생하지 않음.
2. 취약점 세부
이 취약점은 다음 조건으로 인해 발생합니다:
snap-confine
- snap-confine는 setuid root 이진 파일로, snap 사용자 그룹의 파일들을 임시 폴더에 쓰는 역할을 합니다.
- 컨테이너 격리, cgroup 사용, AppArmor 프로필, seccomp 필터 등을 사용하여 샌드박스 환경을 구축합니다.
- 사용자 권한으로 파일을 쓰고 나중에 root 권한으로 읽기를 시도할 때 격리 실패가 발생합니다. 이때 snap-confine은 실패 상태를 처리하지 못하고 충돌합니다.
systemd-tmpfiles
- systemd-tmpfiles는 /tmp, /run, /var/tmp에 접근할 수 있는 시스템 서비스로 임시 폴더를 관리합니다.
- 특정 설정 파일은 시스템 유일 사용자가 생성하고 다른 사용자가 접근할 수 있는 파일을 만들 수 있도록 합니다.
- 설정은 /etc/tmpfiles.d/, /run/tmpfiles.d/, /usr/lib/tmpfiles.d/ 에서 파일을 읽어 설정 파일들을 생성합니다.
- 기본 설정으로 snap-confine이나 다른 데몬이 만든 임시 파일의 권한을 제대로 제어하지 못하도록 설정되어 있습니다.
3. 공격 벡터 및 공격 시나리오
공격 메커니즘
- 시간 기반 창 (Time-Based Window)
- 시스템 부팅 후 데몬(systemd-tmpfiles)이 디렉토리(/tmp/.snap)를 초기화할 때까지 경쟁해야 합니다.
-
Ubuntu 24.04에서는 30초, 이후 버전에서는 10초의 시간이 주어집니다.
-
디렉토리 권한 및 구조 이해
- /tmp/.snap 디렉토리가 생성되면 권한이 사용자가 소유가 됩니다.
-
이때 공격자가 디렉토리의 구조를 이해하고 디렉토리를 파일로 교체할 수 있습니다.
-
바이너리 배치 및 심볼릭 링크 생성
- 사용자 권한으로 바이너리 파일을 생성하고 snap-confine이 해당 파일을 root로 심볼릭 링크를 만들도록 공격자가 유도합니다.
- 이때 snap-confine은 충돌하게 되어 root 권한으로 파일이 기록되거나, 해당 파일의 소유자가 공격자의 소유자인 상태로 남게 됩니다.
공격 시나리오
시나리오 1: 멀티유저 시스템
- 사용자 애플리케이션으로 공격자가 권한이 있는 사용자 계정으로 접속하여 시스템 파일 시스템을 경쟁합니다.
- systemd-tmpfiles가 /tmp/.snap를 사용하여 새 디렉토리를 생성합니다.
- 사용자 애플리케이션은 snap 사용자 그룹으로 /tmp/.snap에 접근하여 권한을 얻습니다.
시나리오 2: 악성 애플리케이션
- 공격자가 사용자 권한으로 시스템 파일 시스템을 경쟁하여 공격자가 소유하는 파일이나 디렉토리를 삭제하거나, 공격자의 의도와 다르게 설정되거나 대체되거나 공격을 성공할 수 있습니다.
- 이 공격은 사용자 권한 악성 파일을 매번 시스템 부팅 시 실행되며 지속 위협(Persistent Threat)이 가능합니다.
4. 영향 및 위험성 분석
위험 수준: High (높음)
공격 영향:
1. 사용자 권한 상승: 로컬 root 권한 탈취
2. 공격 복잡도: 높음 (시간 기반 창 경쟁)
3. 사용자 권한: 낮음
4. 취약 버전: Ubuntu Desktop 24.04 이상 (기본 버전)
취약 요약
| 공격 | 설명 |
|---|---|
| 기밀성 | 기밀 시스템 파일, 사용자 그룹의 데이터, 민감한 정보를 대상으로 권한 상승을 통한 접근 가능 |
| 무결성 | 시스템 파일 시스템 경쟁, 파일 소유자 변경, 파일 쓰기 권한을 통한 데이터 위변조 가능 |
| 가용성 | 시스템 부팅 시 공격자가 시스템을 경쟁하고 디렉토리 구조를 이해하여 권한을 얻을 수 있음 |
| 시스템 가용성 | 샌드박스 시스템 실패로 데몬 충돌로 인해 일시적 서비스 중단 가능 |
대응 및 완화 방법
1. 패치 대응 (즉시, 24시간 이내)
패치 배포
- Ubuntu 24.04 LTS: snapd를 2.73+ubuntu24.04.2 버전으로
- Ubuntu 25.10 LTS: snapd를 2.73+ubuntu25.10.1 버전으로
- Ubuntu 26.04 LTS (Dev): snapd를 2.74.1+ubuntu26.04.1 버전으로
- Upstream snapd: 2.75 버전으로
# 시스템 업데이트
sudo apt update
sudo apt upgrade
# snapd 버전 확인
snap version
# 패치 확인
apt list --installed | grep snapd
취약점 확인
# snapd 버전 확인
snap --version
# CVE 취약 버전 확인
if [ $(snap --version | grep snapd | awk '{print $2}' | cut -d'+' -f1 | cut -d'.' -f2) -lt 75 ]; then
echo "취약 snapd 버전입니다. 패치를 적용해주세요."
fi
2. 감시 대응 (72시간 이내)
디렉토리 감시
- /tmp/.snap 디렉토리 및 내부 파일을 모니터링
- setuid 이진 파일 실행을 보안 로그에서 감지
- root 사용자의 소유하는 파일이나 디렉토리 생성 시 경고
# /tmp/.snap 디렉토리 모니터링
watch -n 60 'ls -la /tmp/.snap'
# root 사용자 소유하는 감시
ps aux --sort=-%mem | head -n 20
# 권한 상승 setuid 실행 감지
grep setuid /var/log/auth.log | tail -n 50
사용자 권한 관리
- 사용자 권한을 감시하고 관리합니다.
- 로그인 기록을 주기적으로 검토합니다.
- 사용자의 접속을 감시하고 다단계 인증(MFA)을 활성화합니다.
3. 완화 대응 (1주 이내)
구축 및 샌드박스
- 시스템 격리 강화
- 취약 setuid 이진 파일로 식별하고 제거합니다.
-
사용자 권한으로 시스템 파일 시스템을 수정하는 것을 방지합니다.
-
취약점 완화
- 최신 보안 패치를 적용하고 시스템을 업데이트합니다.
- 보안 모니터링 및 경보 시스템을 배포하여 빠른 취약점 탐지를 합니다.
- 디렉토리 권한을 제대로 관리합니다.
감지 및 응답
# 감지 로그 수집
sudo auditctl -w /tmp/.snap -p w -k snapd_vuln
sudo auditctl -w /usr/bin/snap -p x -k snapd_exec
# 감지 로그 검토
ausearch -k snapd_vuln
ausearch -k snapd_exec
4. 완화 (장기적)
snapd 사용자화 (선택 사항)
# snapd 사용자 안전화
sudo systemctl stop snapd
sudo systemctl disable snapd
# snapd 패키지 완전 제거
sudo apt remove --purge snapd
# snap 사용자 디렉토리 정리
sudo rm -rf /snap
sudo rm -rf /var/snap
sudo rm -rf /var/lib/snapd
⚠️ 참고: snapd 사용자화는 snap 응용 프로그램을 사용하는 기능을 제한합니다.
systemd-tmpfiles 설정 완화
# /etc/tmpfiles.d/에 설정 파일 추가
sudo bash -c 'cat > /etc/tmpfiles.d/protect-snap.conf << EOF
# /tmp/.snap 디렉토리 보호 설정
d /tmp/.snap 0755 root root -
EOF'
# tmpfiles 설정 적용
sudo systemd-tmpfiles --create --remove
벤치마킹 및 비교
1. 이전 취약점 (최근 24시간 이내)
유형 분석
- CVE-2021-4034 (PwnKit): Polkit(pkexec)의 권한 상승 취약점
- CVE-2021-3156 (Baron Samedit): Sudo 권한 상승 취약점
- CVE-2022-0847 (Dirty Pipe): Linux Kernel 권한 상승 취약점
유사 취약점 비교
| CVE | 발견 | 취약 제목 | CVSS 점수 | 공격 복잡도 | 패치 가용 |
|---|---|---|---|---|---|
| CVE-2026-3888 | 2026 | Ubuntu Snapd | 7.8 (High) | 높음 (시간 기반 창) | snap-confine과 systemd-tmpfiles 취약점 |
| CVE-2021-4034 (PwnKit) | 2021 | Polkit (pkexec) | 7.8 (High) | 낮음 | pkexec와 함께 디바이스 드라이버 사용 |
| CVE-2022-0847 (Dirty Pipe) | 2022 | Linux Kernel | 7.8 (High) | 낮음 | 페이지 테이블 취약점 기반 |
| CVE-2021-3156 (Baron Samedit) | 2021 | Sudo | 7.8 (High) | 낮음 | sudo 비트맵 사용 기반 취약점 |
보안 교훈
- 시간 기반 취약점 공격: CVE-2026-3888는 10-30초 시간에 대상이 공격을 수행하는 취약점을 패치했습니다.
- 검색 격리 실패: 다른 구성 요소 사이의 경쟁로 인해 권한 상승 취약점을 발생했습니다.
- 취약 버전: Ubuntu Desktop 24.04 기본 설치에 취약점을 부담하고 업데이트 필요합니다.
결론 및 제언
1. 시간 창 우선순위
이 취약점은 데스크톱 환경(Ubuntu Desktop 24.04 이상)을 사용자에게 특히 높은 영향을 미칩니다.
- 긴급: 시스템 즉시 업데이트하고 보안 패치를 적용합니다.
- 우선: 사용자 권한, 그룹 멤버, 로그인 감시를 포함하여 대응 전략을 배포합니다.
- 보통: 데스크톱 업데이트, 패치 적용을 계속 모니터링합니다.
- 낮음: 시스템 사용자화(스냅 사용 제한) 등 장기적 완화 조치를 고려합니다.
2. 시간 창 대응
- 시스템 격리 강화
- 취약 setuid 이진 파일로 식별하고 제거합니다.
- 검색 격리 및 보안을 강화합니다.
-
시스템 파일 시스템을 보안 경계를 구축합니다.
-
취약점 완화
- 최신 보안 패치를 적용하고 시스템을 업데이트합니다.
- 보안 모니터링 및 경보 시스템을 배포하여 빠른 취약점 탐지를 합니다.
- 디렉토리 권한을 제대로 관리합니다.
3. 기술적 인사이트
| 취약점 | 영향 |
|---|---|
| 기밀성 | 기밀 시스템 파일, 사용자 그룹의 데이터, 민감한 정보를 대상으로 권한 상승을 통한 접근 가능 |
| 무결성 | 시스템 파일 시스템 경쟁, 파일 소유자 변경, 파일 쓰기 권한을 통한 데이터 위변조 가능 |
| 가용성 | 시스템 부팅 시 공격자가 시스템을 경쟁하고 디렉토리 구조를 이해하여 권한을 얻을 수 있음 |
| 시스템 가용성 | 샌드박스 시스템 실패로 데몬 충돌로 인해 일시적 서비스 중단 가능 |
참고문헌
- NVD (National Vulnerability Database)
- URL: https://nvd.nist.gov/vuln/detail/CVE-2026-3888
- Ubuntu Security Advisory (USN-8102-1)
- URL: https://ubuntu.com/security/notices/USN-8102-1
- Ubuntu Security - CVE-2026-3888
- URL: https://ubuntu.com/security/CVE-2026-3888
- Qualys Threat Research Unit - CVE-2026-3888
- URL: https://blog.qualys.com/vulnerabilities-threat-research/2026/03/17/cve-2026-3888-important-snap-flaw-enables-local-privilege-escalation-to-root
- Qualys Technical Advisory
- URL: https://cdn2.qualys.com/advisory/2026/03/17/snap-confine-systemd-tmpfiles.txt
- Ubuntu Community Discourse
- URL: https://discourse.ubuntu.com/t/snapd-local-privilege-escalation-cve-2026-3888
- oss-sec 메일링 그룹
- URL: http://www.openwall.com/lists/oss-security/2026/03/18/1
- systemd-tmpfiles.d(5) man page
- systemd 관리자 시스템 문서 및 시스템 파일 시스템 문서
- Snapd Documentation
- URL: https://snapcraft.io/docs
본 콘텐츠는 AI 기술로 생성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하시면 댓글을 통해 소중한 의견 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!