[공격] 분석 — CVE-2026-50256
A local stack‑buffer overflow in X.Org X server/Xwayland can be triggered by an overlong font alias name, allowing denial‑of‑service or privilege escalation; apply vendor patches immediately.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00157 · 악용난이도 hard
🔍 공격 기법
-
공격 표면
- X 서버와 Xwayland가 사용하는
libXfont2의 폰트 별칭(alias) 해석 로직. - 입력 파라미터: alias target name 문자열(최대 1024 byte).
- 노출 프로토콜: X11 core protocol, 특히
OpenFont,LoadFont요청 시 서버가 별칭 파일을 읽음.
- X 서버와 Xwayland가 사용하는
-
트리거 조건 (CVSS AV:L/AC:L/PR:L/UI:N)
- 로컬 시스템에 로그인한 사용자가 X 디스플레이(
:0)에 접근 가능해야 함(프리미엄 권한Low). /usr/share/fonts혹은 사용자 홈 디렉터리(~/.fonts)에 조작된fonts.alias파일을 배치할 수 있어야 함.- 별칭 대상 이름 길이가 257 ~ 1023 byte인 레코드를 포함시킨다(버퍼 오버플로우 유발).
- 로컬 시스템에 로그인한 사용자가 X 디스플레이(
-
공격 단계
- 정찰 :
xlsfonts등으로 현재 로드된 폰트와 alias 파일 경로 확인. - 초기 접근 : X 클라이언트를 실행해 조작된 alias 파일을 로드하도록 요청(
XLoadQueryFont). - 실행·권한 획득 : 서버가 256 byte 스택 버퍼에 과다 문자열을 복사하면서 스택 오버플로우 발생.
- 성공 시 X 서버 프로세스 크래시(DoS) 혹은 ROP/시스템 콜 삽입을 통해 루트 권한 획득(서버가 root에서 실행될 경우).
- 지속 : 취약점 이용 후
~/.Xauthority파일에 악성 X 세션을 남겨 재부팅 시 자동 실행 가능. - 영향 : 전체 그래픽 스택 마비, 루트 쉘 획득 → 시스템 전역 제어.
- 정찰 :
-
실제 활용 난이도: EPSS 0.00157(첫 번째 실측 예측)·hard 로 분류되었으며, 이는 현재 공개된 PoC가 없고 복잡한 폰트 환경 구성이 필요함을 의미하지만, 로컬 접근만 있으면 충분히 재현 가능함([실측 악용예측] 참고).
악용 가능성: 이 취약은 AV:L(Local)·AC:L(Low)·PR:L(Low)·UI:N(No User Interaction)이라는 CVSS 벡터가 의미하듯, 로컬에 접근 가능한 일반 사용자 계정만 있으면 추가적인 인증이나 사용자의 동작 없이도 트리거가 가능합니다. 그러나 EPSS = 0.00157라는 실측 값과 KEV 미등재는 현재까지 실제 공격 사례가 거의 보고되지 않았으며, 악용이 제한적이라는 점을 반영합니다. 공격 표면은 X.Org X Server와 Xwayland이 제공하는 Font Alias Resolution API이며, 해당 API에 전달되는 폰트 별명 파라미터 길이가 257~1023 바이트일 때 스택 버퍼(256 바이트) 오버플로우가 발생합니다. 따라서 공격자는 악의적인 별명 문자열을 포함한 X 요청을 로컬 세션에서 전송해야 하며, 이 과정은 X 서버가 실행 중인 환경에 대한 기본적인 정찰 및 접근 권한 확보가 선행되어야 합니다. 성공 시 서비스 거부(크래시)와 함께, X 서버가 루트 권한으로 동작한다면 메모리 손상 기반의 권한 상승이 가능하지만, 실제로 이를 구현하려면 정확한 메모리 레이아웃 파악과 ROP 체인 설계 등 고급 익스플로잇 기술이 필요합니다. 결과적으로 난이도는 Hard으로 평가되며, 공격 표면은 제한된 로컬 X 프로토콜 엔드포인트와 폰트 별명 파라미터에 국한됩니다.
💥 영향 분석
- X 서버·Xwayland 프로세스 비정상 종료 → GUI 전체 마비(DoS).
- X 서버가 root 권한으로 실행되는 레거시 환경에서는 루트 쉘 획득 가능, 결과적으로 시스템 전역 제어.
- 다중 제품(x.org x_server < 21.1.23, xwayland < 24.1.12, RHEL 계열)에서 동일 라이브러리(
libXfont2) 사용으로 공급망 범위 확대([품질 신호] 참고).
🔗 관련 취약점·체이닝
- CWE‑119 (버퍼 오버플로우) 유형의 메모리 손상 결함과 동일 패턴을 공유, 기존 X 서버 폰트 파싱 버그와 연계 가능.
- 추정: 다른 X11 입력 처리 버그(CVE‑2023‑xxxx 등)와 입력 검증 우회 → 권한 상승 체인이 형성될 수 있음(구체적 CVE 번호는 확인되지 않음).
libXfont2를 이용하는 추가 라이브러리(예:pango,cairo)가 동일 메모리 영역을 공유한다면, 악성 폰트 파일 로드 → 코드 실행 체인으로 확장 가능.
🔎 탐지
- X 서버 로그(
/var/log/Xorg.0.log)에 “font alias name too long” 혹은 비정상적인LoadFont오류 메시지가 기록되는 경우. - 시스템 콜 트레이싱(e.g.,
strace -f -e trace=write,read /usr/bin/Xorg)에서 1024 byte 문자열이 256 byte 버퍼에 쓰이는 시도 포착. - 커널 메시지(
dmesg)에stack-protector경고 또는 세그멘테이션 폴트가 발생하면 해당 이벤트를 알림으로 전송.
🛡️ 완화 방안
- 패치 적용: X.Org X server ≥ 21.1.23, Xwayland ≥ 24.1.12 버전으로 즉시 업데이트([우선순위 결정]에 따라 이번 주 내 스케줄).
- 권한 제한: X 서버를 루트가 아닌 일반 사용자 계정으로 실행하도록 구성하고,
xhost·XAUTHORITY정책을 강화하여 비신뢰 사용자 접근 차단. - 폰트 경로 제한:
/etc/fonts/conf.d/외의 디렉터리에서 폰트와 alias 파일 로드를 금지(SELinux/AppArmor 프로파일 적용). - 모니터링: 위 탐지 지표를 SIEM에 연동하고, X 서버 비정상 종료 시 자동 재시작 및 알림 정책 수립.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00157 · exploit=hard · in_scope=None