DEEP DIVE REPORT

Ubuntu Snapd CVE-2026-3888: Snapd 사용자 권한 상승 취약점 심층 분석

SecurityDesk
2026.04.05 조회 29

요약

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. 공격 벡터 및 공격 시나리오

공격 메커니즘

  1. 시간 기반 창 (Time-Based Window)
  2. 시스템 부팅 후 데몬(systemd-tmpfiles)이 디렉토리(/tmp/.snap)를 초기화할 때까지 경쟁해야 합니다.
  3. Ubuntu 24.04에서는 30초, 이후 버전에서는 10초의 시간이 주어집니다.

  4. 디렉토리 권한 및 구조 이해

  5. /tmp/.snap 디렉토리가 생성되면 권한이 사용자가 소유가 됩니다.
  6. 이때 공격자가 디렉토리의 구조를 이해하고 디렉토리를 파일로 교체할 수 있습니다.

  7. 바이너리 배치 및 심볼릭 링크 생성

  8. 사용자 권한으로 바이너리 파일을 생성하고 snap-confine이 해당 파일을 root로 심볼릭 링크를 만들도록 공격자가 유도합니다.
  9. 이때 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주 이내)

구축 및 샌드박스

  1. 시스템 격리 강화
  2. 취약 setuid 이진 파일로 식별하고 제거합니다.
  3. 사용자 권한으로 시스템 파일 시스템을 수정하는 것을 방지합니다.

  4. 취약점 완화

  5. 최신 보안 패치를 적용하고 시스템을 업데이트합니다.
  6. 보안 모니터링 및 경보 시스템을 배포하여 빠른 취약점 탐지를 합니다.
  7. 디렉토리 권한을 제대로 관리합니다.

감지 및 응답

# 감지 로그 수집
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 비트맵 사용 기반 취약점

보안 교훈

  1. 시간 기반 취약점 공격: CVE-2026-3888는 10-30초 시간에 대상이 공격을 수행하는 취약점을 패치했습니다.
  2. 검색 격리 실패: 다른 구성 요소 사이의 경쟁로 인해 권한 상승 취약점을 발생했습니다.
  3. 취약 버전: Ubuntu Desktop 24.04 기본 설치에 취약점을 부담하고 업데이트 필요합니다.

결론 및 제언

1. 시간 창 우선순위

이 취약점은 데스크톱 환경(Ubuntu Desktop 24.04 이상)을 사용자에게 특히 높은 영향을 미칩니다.

  • 긴급: 시스템 즉시 업데이트하고 보안 패치를 적용합니다.
  • 우선: 사용자 권한, 그룹 멤버, 로그인 감시를 포함하여 대응 전략을 배포합니다.
  • 보통: 데스크톱 업데이트, 패치 적용을 계속 모니터링합니다.
  • 낮음: 시스템 사용자화(스냅 사용 제한) 등 장기적 완화 조치를 고려합니다.

2. 시간 창 대응

  1. 시스템 격리 강화
  2. 취약 setuid 이진 파일로 식별하고 제거합니다.
  3. 검색 격리 및 보안을 강화합니다.
  4. 시스템 파일 시스템을 보안 경계를 구축합니다.

  5. 취약점 완화

  6. 최신 보안 패치를 적용하고 시스템을 업데이트합니다.
  7. 보안 모니터링 및 경보 시스템을 배포하여 빠른 취약점 탐지를 합니다.
  8. 디렉토리 권한을 제대로 관리합니다.

3. 기술적 인사이트

취약점 영향
기밀성 기밀 시스템 파일, 사용자 그룹의 데이터, 민감한 정보를 대상으로 권한 상승을 통한 접근 가능
무결성 시스템 파일 시스템 경쟁, 파일 소유자 변경, 파일 쓰기 권한을 통한 데이터 위변조 가능
가용성 시스템 부팅 시 공격자가 시스템을 경쟁하고 디렉토리 구조를 이해하여 권한을 얻을 수 있음
시스템 가용성 샌드박스 시스템 실패로 데몬 충돌로 인해 일시적 서비스 중단 가능

참고문헌

  1. NVD (National Vulnerability Database)
  2. URL: https://nvd.nist.gov/vuln/detail/CVE-2026-3888
  3. Ubuntu Security Advisory (USN-8102-1)
  4. URL: https://ubuntu.com/security/notices/USN-8102-1
  5. Ubuntu Security - CVE-2026-3888
  6. URL: https://ubuntu.com/security/CVE-2026-3888
  7. Qualys Threat Research Unit - CVE-2026-3888
  8. URL: https://blog.qualys.com/vulnerabilities-threat-research/2026/03/17/cve-2026-3888-important-snap-flaw-enables-local-privilege-escalation-to-root
  9. Qualys Technical Advisory
  10. URL: https://cdn2.qualys.com/advisory/2026/03/17/snap-confine-systemd-tmpfiles.txt
  11. Ubuntu Community Discourse
  12. URL: https://discourse.ubuntu.com/t/snapd-local-privilege-escalation-cve-2026-3888
  13. oss-sec 메일링 그룹
  14. URL: http://www.openwall.com/lists/oss-security/2026/03/18/1
  15. systemd-tmpfiles.d(5) man page
  16. systemd 관리자 시스템 문서 및 시스템 파일 시스템 문서
  17. Snapd Documentation
  18. URL: https://snapcraft.io/docs

본 콘텐츠는 AI 기술로 생성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하시면 댓글을 통해 소중한 의견 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.

로그인

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

IT 도구 서랍

→ Unix: 2025-01-15T09:30:00
→ 날짜: 1736934600

→ ASCII: ABC
→ 문자: 65 66 67

ASCII 코드표 — 클릭하면 입력란에 추가

DecHex약어설명
DecHex문자
DecHex문자

→ 유니코드: 홍길동
→ 문자: \ud64d\uae38\ub3d9