Kestrel
CVE-2026-56002DGX_B· 2026년 8월 3일 AM 07:42

[방어] 분석 — CVE-2026-56002

A heap buffer overflow in libXfont2 < 2.0.8 lets an authenticated X client execute arbitrary code on the X server, and the fastest mitigation is to lock down the X server’s fontpath to trusted directories only.

📋 요약

  • 심각도 high · CVSS 8.5 · EPSS 0.00428 · 악용난이도 hard

🔍 공격 기법

인증된 X 클라이언트가 조작된 PCF 폰트 파일을 pcfReadFont()에 전달한다. libXfont2 2.0.8 이전에서는 글리프 경계 검사가 누락돼 힙 버퍼를 오버플로우시키고, 공격자는 임의의 쉘코드를 힙에 심어 X 서버 프로세스(대부분 root 권한) 내에서 실행한다. 일반적인 단계는 ① 악성 PCF 파일 제작 ② X 클라이언트 → X 서버 폰트 로드 요청 ③ 버퍼 오버플로우 → 코드 실행.

악용 가능성: 이 취약은 네트워크를 통해 접근 가능한 X 서버에 직접 연결된 인증된 X 클라이언트가 트리거될 수 있으므로 AV:N(네트워크) 조건을 만족합니다. 그러나 글리프 경계 검사를 우회하기 위해서는 정확한 메모리 레이아웃과 힙 배치를 사전에 파악해야 하며, 이는 복잡한 탐색·조합 과정을 요구하므로 AC:H(높은 난이도) 로 평가됩니다. 공격자는 X 서버에 대한 일반 사용자 권한(Low Privilege)만 보유하면 되기 때문에 PR:L 조건을 충족하지만, 별도의 사용자 동작(UI:N)이 필요 없으므로 UI:N 으로 분류됩니다. EPSS 점수 0.00428은 현재까지 실제 악용 사례가 매우 드물다는 것을 의미하지만, ‘Low’ 수준의 공격 가능성을 완전히 배제할 수는 없으며, 특히 내부망에서 인증된 X 클라이언트를 운영하는 환경에서는 위험이 존재합니다. KEV 목록에 포함되지 않은 것은 아직 대규모 캠페인이나 자동화된 악용 도구가 보고되지 않았기 때문이며, 이는 공격 난이도가 높아 제한적인 상황에서만 활용될 가능성을 시사합니다. 따라서 주요 공격 표면은 X 프로토콜을 통해 전달되는 폰트 로드 요청(pcfReadFont)과 해당 함수에 넘겨지는 글리프 데이터이며, 이 경로가 외부에 노출된 경우에 한해 힙 버퍼 오버플로우를 유발할 수 있습니다.

💥 영향 분석

  • X 서버 프로세스가 루트 또는 set‑uid root 권한으로 동작할 경우 전체 시스템 장악.
  • 악성 코드는 X 세션을 탈취하거나 키 입력/스크린샷 등 사용자 인터페이스를 완전 제어 가능.
  • 다른 로컬 서비스와 연계해 권한 상승 체인(예: sudo, polkit)으로 확장될 위험이 있다.

🔗 관련 취약점·체이닝

  • libXfont2 계열의 과거 힙 오버플로우(CVE‑2020‑xxxx 등)와 유사하게 메모리 손상 후 ROP 체인 구축이 가능.
  • X 서버 자체에 존재하는 setuid 루트 실행 파일(Xorg)과 결합하면 로컬 권한 상승(LPE) 시나리오가 완성된다.

🔎 탐지

  • 로그 지표

    • /var/log/Xorg.0.log : pcfReadFont 관련 오류·경고 메시지가 출력될 경우(예: “pcfReadFont(): buffer overflow”).
    • 커널 로그(dmesg, /var/log/kern.log) : Xorg 프로세스의 세그멘테이션 폴트(segfault at … ip …), SIGSEGV 기록.
    • auditd 이벤트 : type=EXECVE 및 exe="/usr/bin/Xorg"와 함께 pcf 확장자를 가진 파일이 열리는 경우(a0="…/malicious.pcf").
  • SIEM 탐지 규칙 예시

    1. Xorg 로그 기반
text
1source = syslog
2program = "Xorg"
3message =~ /pcfReadFont\(\).*overflow/
  1. auditd 파일 열기 감시
text
1source = audit
2type = "EXECVE"
3exe = "/usr/bin/Xorg"
4arg0 ~= "\.pcf$"
  1. 커널 세그폴트 감지
text
1source = kern
2message =~ /Xorg.*segfault at/
  • 오탐 튜닝
    • 정상적인 폰트 로드 시 pcfReadFont가 호출되지만 오류 메시지는 없으므로, “overflow” 문자열이 포함된 경우만 경보.
    • 파일 열기 규칙은 .pcf 확장자를 가진 파일이 /usr/share/fonts/와 같은 신뢰 디렉터리에서 열릴 때는 제외(path !~ "^/usr/share/fonts/").

🛡️ 완화 방안

  • 즉시(긴급 차단)
    • X 서버의 fontpath를 루트가 소유하고 권한이 0755 이하인 디렉터리만 포함하도록 제한한다. 예) /etc/X11/xorg.conf.d/10-font-path.conf
text
1Section "Files"
2 FontPath "/usr/share/fonts/truetype"
3 FontPath "/usr/share/fonts/type1"
4EndSection
text
1기존 `fontpath`에 사용자 홈 디렉터리(`~/.fonts`)가 포함돼 있다면 즉시 삭제하고 X 서버를 재시작한다.
  • 단기(완화)

    • SELinux/AppArmor 프로파일을 적용해 Xorg이 /home/*/.fonts/ 등 비신뢰 경로에 접근하지 못하도록 차단(auditallowdeny).
    • Xorg 실행 시 ulimit -c 0으로 코어 덤프를 비활성화하고, 시스템 전반에 kernel.core_pattern=|/bin/false 설정을 적용해 공격자가 크래시 정보를 수집하는 것을 방지한다.
    • 패키지 매니저로 libXfont2 ≥ 2.0.8이 제공되는 리포지터리를 확인하고, 아직 배포되지 않은 경우 백포트된 RPM/DEB를 테스트 환경에 적용한다.
  • 근본(해결)

    • 공식 업데이트: yum update libXfont2 또는 apt-get install libxfont2 >=2.0.8. 버전 확인은 rpm -q libXfont2 / dpkg -l | grep libxfont2.
    • 배포판이 최신 패치를 제공하지 않을 경우, upstream 소스(https://gitlab.freedesktop.org/xorg/lib/libXfont)에서 2.0.8 이상을 빌드해 수동 설치한다.
  • 구현 난이도·운영 영향

    • 즉시 차단: ★☆☆ (설정 파일 수정 + X 재시작, 현재 세션 일시 중단)
    • 단기 완화: ★★☆ (SELinux/AppArmor 정책 추가, 코어 덤프 비활성화 – 시스템 전반에 최소 영향)
    • 근본 해결: ★★★ (패키지 업데이트 또는 수동 컴파일 필요, 서비스 재시작 후 정상 운영)
  • 검증 방법

    • 설정 적용 후 xfontsel -list 로 허용된 폰트 경로만 표시되는지 확인.
    • auditd 로그에 type=PATH 이벤트가 차단된 디렉터리 접근을 기록하는지 테스트(예: touch ~/.fonts/malicious.pcf).
    • X 서버 재시작 후 정상 동작 여부를 systemctl status display-manager 로 검증.
  • 잔여 리스크

    • 컨테이너·chroot 환경에 libXfont2 < 2.0.8 버전이 남아 있을 경우 동일 취약점이 존재하므로 전사적 인벤토리 점검 필요.
    • 정책 적용 후에도 이미 메모리에 적재된 악성 폰트가 남아 있으면 재시작 전까지는 위험이 지속될 수 있다.
  • 인시던트 대응 플레이북

    1. SIEM/ELK에서 위 탐지 규칙에 의해 알림 발생 → 알람 확인.
    2. ps -ef | grep Xorg 로 X 서버 PID 파악, 해당 프로세스가 비정상 메모리 사용을 보이는지 pmap <pid> 검사.
    3. 즉시 systemctl restart display-manager 실행(사용자 세션 차단) 및 fontpath 제한 적용.
    4. auditd 로그에 기록된 악성 폰트 파일 경로를 격리·삭제하고, 해당 호스트의 SELinux/AppArmor 정책을 강화.
    5. 패치가 배포되면 전사적 업데이트 수행 후 재검증.

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=8.5 · non-KEV · EPSS=0.00428 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…