[공격] 분석 — CVE-2026-55999
CVE-2026-55999 enables a local X client to trigger a heap buffer overflow via malformed PCX fonts in SetFont, leading to full remote code execution on the X server; immediate mitigation is to disable PCX font loading and apply the upstream patch.
📋 요약
- 심각도 high · CVSS 8.5 · EPSS 0.00269 · 악용난이도 hard
🔍 공격 기법
- 공격 전제: 로컬 시스템에서 X 서버(
xorg-server< 21.2.24 또는xwayland< 24.1.13)와 연결된 클라이언트가 필요함(프리미엄 권한 PR:L, UI:N). 이는 일반적인 데스크톱 세션이나 원격 X 포워딩을 통해 얻을 수 있다. - 공격 표면:
SetFont요청에 포함되는 폰트 파일 경로와 포맷. X 프로토콜의RenderAddGlyphs/SetFont단계에서 PCX(*.pcx) 파일이 로드된다. 파라미터는 파일명, 폰트 ID, 그리고 내부 glyph 데이터 길이이다. - 트리거 조건: 공격자는 고정된 크기의 힙 버퍼에 맞지 않는 큰 glyph 데이터를 포함한 PCX 폰트를 제공한다. 서버는 glyph 경계 검사를 수행하지 않아
malloc‑된 버퍼를 초과 쓰게 된다 → heap overflow. - 단계 흐름
- 정찰 – 로컬 X 소켓(
:0, TCP 6000 등) 열려 있는지 확인하고, 현재 실행 중인 X 서버 버전을 조회(xdpyinfo). - 초기 접근 – 정상적인 X 클라이언트(예:
xfontsel혹은 자체 제작 툴)로 X 서버에 연결한다. - 실행 – 임의 PCX 폰트를 생성(길이 조작된 glyph 테이블 포함)하고,
SetFont호출 시 해당 파일 경로를 전달한다. - 권한 획득 – 힙 오버플로우가 성공하면 인젝션된 쉘코드가 X 서버 프로세스(
Xorg/Xwayland)의 주소 공간에 삽입돼, 동일 권한(보통root또는 현재 사용자)으로 코드 실행된다. - 지속·영향 – 공격자는 X 서버 프로세스를 탈취해 키 입력 가로채기, 화면 캡처, 임의 파일 접근 등 전형적인 RCE 효과를 얻는다.
- 정찰 – 로컬 X 소켓(
- CVSS와 실제 조건 매핑: AV:N은 네트워크(또는 로컬 소켓) 기반 접속을 의미하고, AC:H는 폰트 포맷 조작·PCX 파싱에 대한 높은 복잡성을 반영한다. PR:L은 로컬 사용자 권한만 필요함을, UI:N은 사용자가 별도 인터랙션 없이 자동화된 툴로 수행 가능함을 나타낸다.
악용 가능성: CVSS 벡터 AV:N/AC:H/PR:L/UI:N은 네트워크를 통해 X 서버에 접근할 수 있으면 원격으로 공격이 가능하지만, 성공하려면 정교한 PCX 폰트 데이터를 설계하고 힙 메모리 레이아웃을 정확히 파악해야 하는 높은 복잡성을 요구합니다. 공격자는 X 서버가 열어 둔 6000번대 TCP 포트에 연결해 SetFont 요청을 전송할 수 있으나, 정상적인 폰트와 구분되는 악성 PCX 파일을 만들기 위해서는 상세한 바이너리 분석과 메
💥 영향 분석
- 힙 버퍼 오버플로우가 성공하면 X 서버 프로세스 전체를 장악한다.
- 공격자는 화면 내용 탈취·키 입력 기록, 임의 파일 읽기/쓰기, 시스템 콜 실행 등 전형적인 로컬 권한 상승(RCE) 효과를 얻는다.
- X 서버는 다수 사용자 세션을 공유하므로 한 번 침해되면 동일 호스트에 로그인된 모든 사용자가 위험에 처한다.
🔗 관련 취약점·체이닝
- **CWE‑122 (Heap‑based Buffer Overflow)**와 직접 연관돼, 메모리 할당 경계 검증 부재가 핵심 원인이다.
- 추정: 동일 X 서버 코드베이스에서
LoadFont혹은RenderAddGlyphs에 존재하는 다른 폰트 파서 버그(CWE‑125 등)와 연쇄될 경우, 악용 난이도가 낮아져 완전한 권한 상승 체인이 형성될 수 있다. - 현재 알려진 다른 CVE와 직접적인 연결 고리는 없으나, X 서버가 제공하는 X11 인증(Xauthority) 우회·SELinux/AppArmor 제한 회피와 결합하면 방어층을 무력화할 수 있다(예:
setuid바이너리 실행 권한을 획득한 뒤xhost +로 모든 클라이언트를 허용).
🔎 탐지
- X 서버 로그(
/var/log/Xorg.0.log)에 비정상적인SetFont요청이 연속적으로 기록되는 경우(특히 파일 경로가/tmp혹은 사용자 홈 디렉터리 아래의.pcx파일). - Auditd 또는 eBPF 기반 트레이싱에서
malloc/free후 바로 발생하는 heap overflow 시그널(SIGSEGV/SIGBUS)이 X 서버 프로세스에서 포착될 경우. - SELinux/AppArmor audit 로그에
denied이벤트가 “font loading” 혹은 “pcx”와 연관된 경우.
🛡️ 완화 방안
- 즉시 적용: 최신 패치를 배포해
xorg-server ≥ 21.2.24,xwayland ≥ 24.1.13로 업데이트한다. (우선순위 = scheduled this week – 다중 소스에서 일관성이 확인됐으며 CVSS 8.5, EPSS 0.00269, hard exploit 등급을 근거로 함) - PCX 로딩 비활성화:
xorg.conf에Option "DisablePCX" "true"(또는 해당 옵션이 없으면ModulePath에서 PCX 파서를 제거) 설정으로 폰트 로드 경로를 차단한다 – DGX_1 의견 반영. - 접근 제한: X 소켓을 로컬 루프백에만 바인딩하고, TCP 6000 포트를 방화벽(예:
iptables -A INPUT -p tcp --dport 6000 -j DROP)으로 차단하되 서비스 영향 최소화를 위해 Xauthority 기반 인증 강화와 SELinux/AppArmor 정책(allow setfont제한) 적용 – DGX_B 의견 반영. - 모니터링: 위 탐지 지표를 포함한 실시간 로그 수집 및 SIEM 알림 규칙을 배포한다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=8.5 · non-KEV · EPSS=0.00269 · exploit=hard · in_scope=None