[공격] 분석 — CVE-2026-50263
CVE-2026-50263 is a local use‑after‑free in X.Org/Xwayland’s CreateSaverWindow() that allows low‑privilege users to read freed memory, and the fastest defense is to apply the upstream patch and restrict X server privileges.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00141 · 악용난이도 hard
🔍 공격 기법
- 공격 전제: 로컬 계정이 X 서버(:0)와 같은 Unix 도메인 소켓에 접근 가능해야 함(프리빌리지 PR:L).
- 표면 매핑
- 엔드포인트:
/tmp/.X11-unix/X0등 X 서버 소켓. - 프로토콜/함수: X11
ChangeWindowAttributes요청 → 창 속성 변경, 이후 화면 보호기 활성화(ScreenSaverActivate혹은 XScreenSaver extension) → 내부CreateSaverWindow()호출.
- 엔드포인트:
- 트리거 조건: 창 속성을 바꾸고 바로 화면 보호기를 강제하면, 기존에 할당된 saver window 구조체가 해제된 뒤 여전히 사용되어 읽기 동작이 발생함(Use‑After‑Free).
- 공격 단계
- 정찰:
xdpyinfo등으로 X 서버 버전 확인 → 취약 버전(< 21.1.23 혹은 < 24.1.12)인지 판단. - 초기 접근: 로컬 사용자 권한(L)으로 소켓에 연결, 인증(인증 토큰 없이 가능).
- 실행: 위 요청을 순차적으로 전송하여
CreateSaverWindow()의 해제‑재사용 흐름을 유도. - 정보 획득: 해제된 메모리 영역을 읽어 반환되는 X 서버 응답(예: 화면 보호기 이벤트)에서 임의 데이터가 포함되어 정보 누출이 발생(C).
- 정찰:
- CVSS 연결: AV:L → 로컬 소켓, AC:L → 요청 자체는 복잡하지 않음, PR:L → 일반 사용자, UI:N → 사용자 개입 없음. 실제 공격은 위 조건만 만족하면 실행 가능함.
악용 가능성: 이 취약은 AV:L (로컬)·AC:L (복잡도 낮음)·PR:L (권한 낮음)·UI:N (사용자 개입 없음) 벡터에 따라, 공격자는 동일 호스트의 X 세션에 접근할 수만 있으면 추가적인 전제조건 없이 실행이 가능합니다. 실제 공격을 위해서는 X.Org/Xwayland 서버가 구동 중인 환경에서 클라이언트 프로그램이 CreateSaverWindow() 함수를 호출하고, 창 속성을 변경한 뒤 화면 보호기를 강제로 활성화하는 특정 파라미터(예: window‑id, attribute flags) 를 전달해야 합니다. 성공 시 발생하는 use‑after‑free 읽기는 메모리 내용 노출에 그치며, 원격 코드 실행이나 권한 상승을 직접 제공하지 않기 때문에 위험도는 제한적입니다. EPSS가 0.00141 로 매우 낮고 KEV 리스트에도 포함되지 않은 점은, 현재까지 실무에서 이 취약이 실제 악용된 사례가 거의 없으며 공격 성공 확률이 통계적으로 미미함을 보여줍니다. 그러나 로컬 사용자가 X 서버에 직접 연결할 수 있는 전통적인 데스크톱 환경에서는 ‘창 속성 변경 → 화면 보호기 강제’ 이라는 간단한 흐름만으로도 정보 유출이 가능하므로, 공격 난이도는 “hard” 등급에도 불구하고 현장에서는 ‘low‑effort, local‑only’ 수준이라고 평가할 수 있습니다. 따라서 방어자는 로컬 사용자에 대한 X 세션 접근 제어와 최신 X 서버 패치를 유지하는 것이 실질적인 위험 감소에 핵심이 됩니다.
💥 영향 분석
- 성공 시 민감 메모리 내용(예: 다른 클라이언트의 X 리소스 핸들, 인증 토큰, 환경 변수 등) 노출.
- 코드 실행이나 권한 상승은 직접 제공되지 않으며, 정보 누출이 주된 위험.
🔗 관련 취약점·체이닝
- 유형: CWE‑416 Use‑After‑Free → 정보 노출(C) → 추가 체이닝 시 메모리 내용으로 다른 CVE(예: 인증 토큰 탈취 후 권한 상승) 활용 가능.
- 추정: 동일 X 서버 프로세스 내 다른 메모리 오류(CWE‑787, CWE‑119 등)가 존재한다면, 누출된 포인터를 이용해 원격 코드 실행(RCE)까지 확장될 수 있음.
🔎 탐지
- Xorg/Xwayland 비정상 종료 또는 재시작 이벤트(로그:
/var/log/Xorg.*, systemdXorg.service상태 변화). - 커널 감사 로그에
execve("/usr/bin/Xorg")와 함께munmap/free호출이 급증하는 패턴. 예시 규칙:auditctl -w /usr/bin/Xorg -p x -k xorg_exec. - SIEM에서 “Xorg crashed” 알림 + 메모리 할당 변동(예:
cgroup memory.stat의rss급감 후 급증) 감지.
🛡️ 완화 방안
- 패치 적용: 배포된 X.Org 21.1.23 이상, Xwayland 24.1.12 이상 버전으로 업데이트.
- 권한 최소화: SELinux/AppArmor 프로파일에서
cap_sys_admin등 고위 권한 차단, X 서버를 일반 사용자 계정으로 실행하도록 설정. - 모니터링 강화: Xorg 비정상 종료 시 커널 로그와
/var/log/Xorg.*를 실시간 수집·알림하는 SIEM 룰 적용(전체 메모리 덤프는 선택적, 저장 부하 고려). - 포렌식 대비: 서비스 재시작 직후
systemd-coredump로 제한된 영역만 자동 저장하도록 구성하고,/var/crash와audit.log를 연계 분석.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00141 · exploit=hard · in_scope=None