[공격] 분석 — CVE-2026-56002
CVE-2026-56002 is a heap buffer overflow in libXfont2’s pcfReadFont() that allows an authenticated X client to achieve remote code execution on the X server, and it must be patched and runtime‑hardened immediately.
📋 요약
- 심각도 high · CVSS 8.5 · EPSS 0.00428 · 악용난이도 hard
🔍 공격 기법
- 트리거 조건: X 클라이언트가 신뢰되지 않은 폰트 파일(PCF 형식)을
XLoadFont혹은XftAPI를 통해 로드하도록 요청하면, libXfont2 2.0.8 이전 버전의pcfReadFont()에서 글리프 경계 검사가 누락돼 힙에 과도한 데이터를 복사한다. - 공격 표면: X 서버 소켓(
unix:/tmp/.X11-unix/*또는 TCP 6000‑6005),fontpath설정에 지정된 디렉터리, 폰트 로드 요청 파라미터(폰트 이름/경로). CVSS 벡터 AV:N/AC:H/PR:L/UI:N와 일치하게 네트워크 접근은 필요 없으며, 인증된 X 클라이언트(프리빌리지 L)만 있으면 된다. - 단계:
- 정찰 – 로컬 혹은 내부망에서 X 서버에 연결하고 현재
fontpath목록(xset q)을 확인한다. 신뢰되지 않은 디렉터리가 포함돼 있는지 탐색한다. - 초기 접근 – 정상적인 X 클라이언트(예: SSH 터널링 후 X 포워딩)로 인증하고, 악성 PCF 폰트를
XLoadFont호출로 로드한다. - 실행·권한 획득 – 힙 버퍼오버플로우가 발생하면 인접 메모리(함수 포인터 또는 가상 테이블)를 덮어써 임의 코드를 실행한다. X 서버 프로세스는 루트 권한으로 동작할 경우 시스템 전체 권한을 획득한다.
- 지속 – 공격자는 X 서버에 백도어(예: UNIX 도메인 소켓 리버스 쉘)나 악성 폰트를 영구히 남겨 재부팅 후에도 실행될 수 있다.
- 영향 – 전체 데스크톱 세션 탈취, 키 입력 가로채기, 파일 시스템 접근 등 전면적인 원격 코드 실행이 가능하다.
- 정찰 – 로컬 혹은 내부망에서 X 서버에 연결하고 현재
악용 가능성: AV:N은 네트워크를 통해 X 서버(보통 TCP 6000 포트)가 외부에 노출돼 있기 때문에 원격에서 접근이 가능함을 의미합니다. AC:H는 공격자가 정확한 힙 레이아웃을 파악하고, 글리프 수와 경계 검증이 누락된 pcfReadFont() 함수에 맞춘 악성 PCF 폰트를 정밀히 제작해야 하는 높은 난이도를 나타냅니다. PR:L은 관리자 권한이 아닌 일반 사용자 계정만으로도 X 클라이언트 세션을 열어 공격을 시작할 수 있음을 보여줍니다. EPSS = 0.00428이라는 실측값은 현재까지 관찰된 악용 사례가 극히 드물어 실제 위협이 낮다는 것을 뒷받침합니다. KEV에 등재되지 않은 점도 보안 업체들이 이 취약점을 이용한 활발한 공격 캠페인을 보고하지 않았음을 의미합니다. 따라서 노출되는 공격 표면은 X 프로토콜의 FontLoad 요청을 통해 libXfont2 → pcfReadFont() 함수까지이며, 악성 폰트 파일
💥 영향 분석
- 성공 시 X 서버 프로세스가 임의 코드를 실행해 루트 혹은 해당 X 서버가 실행 중인 사용자 권한을 획득한다.
- 데스크톱 환경 전체가 장악당하고, 키보드/마우스 이벤트 탈취·조작, 화면 캡처, 파일 시스템 접근이 가능해진다.
🔗 관련 취약점·체이닝
- 유형: CWE‑122 (Heap‑based Buffer Overflow) → 메모리 손상 → 권한 상승(RCE).
- 가능한 체인:
- 폰트 경로 하드닝 미비 → 악성 폰트 로드 → CVE-2026-56002 활용 → X 서버 탈취.
- X 서버 메모리 보호 비활성화 (PIE/RELRO, ASLR 미적용) → 오버플로우 시 정확한 주소 추정이 쉬워짐 → 원격 코드 실행 성공률 상승.
- 추정: 다른 X11 관련 취약점(CVE‑2022‑XXXX 등)과 결합하면 인증 없는 네트워크 접근을 얻는 전 단계가 가능하지만, 현재 보고된 데이터에서는 해당 연계가 확인되지 않았다.
🔎 탐지
- X 서버 로그(
/var/log/Xorg.0.log)에 비정상적인pcfReadFont호출 실패나 메모리 할당 오류가 기록되는 경우. - auditd 규칙으로
/usr/lib/xorg/modules/fonts/*파일 로드 이벤트와 X 서버 프로세스( pid 1‑9xx )의 비정상 종료/시그널(SIGSEGV) 감지. - SELinux/AppArmor 감사 로그에
fontpath디렉터리 외부에서 폰트 파일을 읽는 시도(denied)가 발생하면 경보.
🛡️ 완화 방안
- 즉시: libXfont2를 2.0.8 이상으로 업그레이드하고, X 서버 재시작을 수행한다.
- 런타임 하드닝:
xorg.conf또는/etc/X11/xorg.conf.d/에FontPath ""(빈 경로) 혹은 신뢰된 디렉터리만 지정하고, 외부 경로는 차단한다. - 메모리 보호: X 서버 바이너리를 PIE+RELRO/Canary 옵션으로 재컴파일하거나 배포 패키지의 보안 플래그를 확인한다.
- 강제 정책: SELinux/AppArmor 프로파일에
fontpath디렉터리 접근을 제한하고, audit 로그와 ELK 스택 연동 규칙을 적용한다. - 네트워크 제한: XDMCP 및 SSH 터널링 기반 원격 포워딩을 차단해 인증된 클라이언트만 내부망에서 접속하도록 방화벽 정책을 강화한다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=8.5 · non-KEV · EPSS=0.00428 · exploit=hard · in_scope=None