[방어] 분석 — CVE-2026-56000
CVE-2026-56000 is a heap use‑after‑free in Xorg/Xwayland’s GLX handling that enables local privilege escalation, and the quickest interim protection is to block GLX ioctl calls for untrusted clients via an SELinux/AppArmor rule.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00222 · 악용난이도 hard
🔍 공격 기법
로컬 사용자가 X 연결을 보유한 상태에서 악의적인 GLX Commit 요청을 전송하면, X 서버는 CommonMakeCurrent() 함수가 재할당된 메모리를 참조하도록 유도해 힙 Use‑After‑Free 를 발생시킵니다. 이 단계에서 공격자는 임의 코드를 실행하거나 서비스 거부(DoS)를 초래할 수 있습니다.
악용 가능성: 이 취약은 로컬 환경에서 X 서버에 GLX 커밋을 전달할 수 있는 공격자가 전제조건이며, 물리적 또는 가상 콘솔 접근 권한(Privilege = Local)만 있으면 됩니다. 공격 복잡도는 낮게 평가되는데(AC:L), 이는 특수한 입력값을 제공하는 것만으로도 Heap Use‑After‑Free를 유발할 수 있기 때문입니다. 권한 요구가 로컬(L)이고 사용자 상호작용이 필요하지 않으므로(UI:N) 자동화된 스크립트로도 실행 가능성이 존재합니다. EPSS = 0.00222는 현재 관측된 실제 악용 확률이 매우 낮지만, 완전히 배제되지 않는 수준임을 보여줍니다. KEV에 등재되지 않은 점은 아직 광범위한 공격 캠페인이나 공개 익스플로잇이 보고되지 않았음을 의미합니다. 노출되는 공격 표면은 xorg‑server(버전 < 21.2.24)와 xwayland(버전 < 24.1.13)의 GLX 관련 엔드포인트이며, 특히 CommonMakeCurrent() 함수가 참조하는 메모리 주소를 조작할 수 있는 파라미터가 핵심 트리거입니다.
💥 영향 분석
- 성공적인 악용 시 X 서버 프로세스가 비정상 종료되어 현재 세션이 중단됩니다.
- 메모리 손상으로 인한 권한 상승이 가능해 로컬 루트 권한을 획득하거나, 다른 로컬 사용자의 세션을 탈취할 위험이 있습니다.
🔗 관련 취약점·체이닝
- 동일한 GLX Extension을 대상으로 하는 과거 Xorg 메모리 손상(CWE‑416)과 연계될 수 있어, 복합적인 권한 상승 체인에 활용될 가능성이 존재합니다. (구체적 CVE 번호는 확인되지 않음)
🔎 탐지
-
로그 지표
/var/log/Xorg.0.log또는 systemd journal (_COMM=xorg-server)에서GLX와segfault,core dump,CommonMakeCurrent문자열이 포함된 항목.- auditd 로그(
type=PROCTITLE)에 X 서버 프로세스가 비정상 종료되는 이벤트.
-
SIEM 쿼리 예시 (Splunk)
text1index=linux sourcetype=syslog ("xorg-server" OR "Xorg")2 AND ("GLX" AND ("segfault" OR "core dump"))3 | stats count by host, _time4 | where count > 1 -
정규식 탐지
(?i)CommonMakeCurrent.*(free|use after free)(?i)GLX.*(error|segfault|crash)
-
오탐 튜닝
- 정상적인 GLX 초기화 실패는 드물므로, 동일 호스트에서 5분 이내에 두 건 이상 발생 시 경보를 생성하도록 임계값을 설정합니다.
- X 서버 재시작 후 첫 번째 로그는 무시하고, 연속된 비정상 종료 패턴만을 감지하도록 필터링합니다.
🛡️ 완화 방안
-
즉시(긴급 차단)
- Xorg와 xwayland 실행 시 GLX 확장을 비활성화합니다.
Option "GLX" "disable"를/etc/X11/xorg.conf혹은 개별 서버 설정 파일에 추가하고, 서비스를 재시작하십시오.- 이 조치는 구현 난이도가 낮으며, 기존 그래픽 가속 기능을 상실하지만 X 세션의 가용성에는 큰 영향을 주지 않습니다.
- Xorg와 xwayland 실행 시 GLX 확장을 비활성화합니다.
-
단기(완화)
LIBGL_ALWAYS_SOFTWARE=1환경 변수를 설정해 소프트웨어 렌더링으로 전환하고, GLX 호출이 메모리 할당을 피하도록 합니다.- 시스템 전체에 적용하려면
/etc/profile.d/glx_soft.sh에export LIBGL_ALWAYS_SOFTWARE=1을 추가하십시오.
- 시스템 전체에 적용하려면
- X 서버 접근 제어를 강화합니다.
xhost로 로컬 루프백만 허용하고,xauth를 사용해 신뢰된 클라이언트만 연결하도록 제한합니다.- 구현 난이도는 중간이며, 기존 인증 메커니즘과 충돌할 경우 일부 애플리케이션에서 X 연결 오류가 발생할 수 있습니다.
-
근본(해결)
- xorg‑server를 버전 21.2.24 이상, xwayland를 버전 24.1.13 이상으로 업그레이드합니다.
- 배포판 제공 패키지가 없을 경우, 공식 X.Org 소스에서 해당 버전을 컴파일하고 기존 바이너리를 교체하십시오.
- 이 조치는 높은 구현 난이도와 서비스 재시작 필요성을 동반하지만, 근본적인 메모리 손상 취약점을 제거합니다.
- xorg‑server를 버전 21.2.24 이상, xwayland를 버전 24.1.13 이상으로 업그레이드합니다.
-
검증 방법
- 업그레이드 후
Xorg -version로 버전을 확인하고, 동일한 GLX 요청을 수행해 비정상 종료가 발생하지 않는지 로그와 core dump 여부를 점검합니다. - 긴급 차단/단기 완화 적용 시,
glxinfo명령이 “Software rasterizer” 를 반환하는지 확인하여 소프트웨어 렌더링이 정상 동작함을 검증하십시오.
- 업그레이드 후
-
잔여 리스크
- GLX 비활성화로 인한 그래픽 가속 손실은 남아 있으나, 해당 취약점 자체는 완전히 차단됩니다.
- 로컬 권한을 가진 공격자는 여전히 다른 취약점을 활용할 가능성이 있으므로, 전반적인 로컬 계정 관리와 최소 권한 원칙을 지속적으로 적용하십시오.
-
인시던트 대응 플레이북
- X 서버 비정상 종료 알림 수신 → 해당 호스트의
/var/log/Xorg.*와 journal 로그 확인. CommonMakeCurrent관련 문자열 유무와 crash 횟수 집계.- 즉시 GLX 차단 설정 적용 여부 점검, 미적용 시 신속히 적용.
- 필요 시 서비스 재시작 후 정상 동작 확인 및 임시 소프트웨어
- X 서버 비정상 종료 알림 수신 → 해당 호스트의
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00222 · exploit=hard · in_scope=None