X.Org 보안 권고: X.Org X 서버와 Xwayland의 다중 보안 취약점
(lists.x.org)- X.Org 프로젝트는 xorg-server 21.1.18 이전 버전과 Xwayland 24.1.8 이전 버전에서 발견된 여러 보안 취약점을 수정한 업데이트를 발표
- 첫 번째 취약점(CVE-2025-62229)은 XPresentNotify 구조체 생성 과정의 use-after-free 문제로, 오류 처리 중 포인터가 해제된 후 재사용되는 위험 존재
- 두 번째 취약점(CVE-2025-62230)은 Xkb 클라이언트 리소스 제거 과정의 use-after-free 문제로, 클라이언트 종료 시 리소스 삭제 함수가 이미 해제된 데이터를 참조
- 세 번째 취약점(CVE-2025-62231)은 XkbSetCompatMap() 함수의 값 오버플로우 문제로, 입력 데이터 합이 unsigned short 범위를 초과할 수 있음
- 모든 취약점은 xorg-server 21.1.19 및 Xwayland 24.1.9에서 수정되었으며, X.Org는 보고자 및 수정 기여자에게 감사를 표명
X.Org 보안 권고 개요
- X.Org는 2025년 10월 28일, X 서버와 Xwayland 구현에서 발견된 다중 보안 문제에 대한 권고를 발표
- 해당 문제들은 xorg-server 21.1.19 및 xwayland 24.1.9 버전에서 수정됨
- 취약점들은 Trend Micro Zero Day Initiative와 협력한 Jan-Niklas Sohn에 의해 발견됨
CVE-2025-62229 — XPresentNotify 구조체의 use-after-free
- X11 Present 확장을 사용할 때, 픽스맵 표시 후 알림을 추가하는 과정에서 오류가 발생하면 dangling pointer가 남을 수 있음
- 이로 인해 나중에 알림 구조체를 파괴할 때 use-after-free 발생 가능
- 해당 문제는 Xorg 1.15에서 도입되었으며, xorg-server 21.1.19 및 xwayland 24.1.9에서 수정
- 수정 커밋: 5a4286b1
CVE-2025-62230 — Xkb 클라이언트 리소스 제거 시 use-after-free
- 클라이언트의 Xkb 리소스를 제거할 때, XkbRemoveResourceClient() 함수가 장치에 연결된 XkbInterest 데이터만 해제하고 관련 리소스는 해제하지 않음
- 결과적으로 클라이언트 종료 시 리소스 삭제 함수가 이미 해제된 데이터를 참조하여 use-after-free 발생
- 해당 문제는 X11R6에서 도입되었으며, xorg-server 21.1.19 및 xwayland 24.1.9에서 수정
- 수정 커밋: 99790a2c, 10c94238
CVE-2025-62231 — XkbSetCompatMap()의 값 오버플로우
-
XkbCompatMap 구조체가 일부 값을 unsigned short로 저장하지만, 입력 데이터의 합이 이 범위를 초과할 수 있는지 확인하지 않음
- 이로 인해 값 오버플로우 발생 가능
- 해당 문제는 X11R6에서 도입되었으며, xorg-server 21.1.19 및 xwayland 24.1.9에서 수정
- 수정 커밋: 475d9f49
감사 및 배포
- X.Org는 문제를 보고하고 수정에 참여한 모든 기여자에게 감사를 표명
- 권고문에는 OpenPGP 서명 및 공개키 파일이 첨부되어 있음
- 추가 정보는 xorg-announce 메일링 리스트에서 확인 가능
Hacker News 의견
-
X11Libre/xserver 기반에서 이런 변화들이 어떻게 작동하는지 궁금함
내 이해로는 X.Org에서 발생한 보안 이슈를 해결하고 있다고 알고 있음
하지만 XLibre가 X.Org 쪽에서 해결되지 않은 수천 개의 문제를 수정했다고 하니, 이미 완화된 상태인지 흥미로움- 그들의 GitHub를 보면 X.Org와 동일한 세 가지 변경이 10월 28일, 즉 권고문이 나온 날에 적용되었음
이미 수정되어 있던 건 아니고, 발표 직후 바로 패치된 것임 - XLibre는 5개월 만에 많은 작업이 진행된 걸 보면 꽤 활발한 프로젝트로 보임
- 그 프로젝트는 현실성이 없는 공상 수준의 시도라고 생각함
X.Org가 완전히 중단되면 X11을 유지할 역량이 없을 것 같음 - 그건 “anti-woke”를 표방하며 포크된 프로젝트 아닌가?
솔직히 보면 특정 인물이 개인적 불만을 X 서버 포크로 표출한 것처럼 보였음
- 그들의 GitHub를 보면 X.Org와 동일한 세 가지 변경이 10월 28일, 즉 권고문이 나온 날에 적용되었음
-
이런 취약점을 찾아내고 고치는 건 좋지만, 신뢰할 수 없는 클라이언트가 X 서버와 통신하도록 허용하는 건 설계상 위험한 일임
특히 Tcl/Tk 앱이 있다면 X 서버를 통해 프로그램 명령을 직접 전송할 수도 있음- X 서버가 더 높은 권한으로 실행되거나 다른 호스트에서 동작하는 환경에서는 권한 상승 취약점이 발생할 수 있음
X11은 사용자 세션 보안 메커니즘이 거의 없기 때문에, 신뢰도가 낮은 UI 프로그램을 실행하지 않는 게 좋음
키 입력 주입이나 화면 캡처를 막을 방법이 없다는 건 설계적 한계이지만, 이런 공격을 과소평가해서는 안 됨 - 여전히 xorg의 버그를 고치는 전설적인 개발자들이 있음
예전에 Alan Coopersmith가 내가 보고한 버그를 직접 고쳐줬음
아마 C 프로그램의 플래그 누락 문제였던 걸로 기억함 - 1996년에는 Tk의 X 통합 수준이 놀라웠음
그때는 Netscape를 MIT 매직 쿠키로 제어할 수 있었는데, 지금 생각하면 꽤 무서운 일임 - Tk의
send명령은 위험하지만, no-op으로 재바인딩하면 쉽게 막을 수 있음
- X 서버가 더 높은 권한으로 실행되거나 다른 호스트에서 동작하는 환경에서는 권한 상승 취약점이 발생할 수 있음
-
Coverity는 이런 종류의 버그를 잘 찾아줌
그런데 왜 X.Org 같은 중요한 프로젝트가 이 툴의 무료 접근 권한을 활용하지 않는지 궁금함- 이유는 간단함. Wayland를 개발하는 사람들이 원래 X.Org 개발자들이었음
그들은 이제 새로운 전환 동기를 만드는 데 집중하고 있고, 오래된 프로젝트를 유지하는 데 에너지를 쓰고 싶지 않은 것임
- 이유는 간단함. Wayland를 개발하는 사람들이 원래 X.Org 개발자들이었음
-
리눅스의 가장 큰 고통은 그래픽스임. 정말 아쉬움
- 그래픽 덕분에 리눅스가 데스크톱 시장 점유율 1%를 넘겼다고 생각함
하드웨어가 문제일 때는 힘들지만, 대부분의 환경에서는 Steam 게임이 거의 네이티브 수준으로 잘 돌아감
문제는 리눅스가 아니라 하드웨어 쪽임 - Xorg는 확실히 복잡하고 다루기 어려움
하지만 이건 리눅스 전용이 아니라, 이제는 레거시 기술로 남은 느낌임 - 우리의 고통은 그래픽스... 그리고 오디오... 와이파이 지원...
결국 리눅스의 세 가지 고통은 그래픽, 오디오, 와이파이 하드웨어 지원임
거기에 명령줄에 대한 거의 종교적인 집착까지 포함됨
- 그래픽 덕분에 리눅스가 데스크톱 시장 점유율 1%를 넘겼다고 생각함
-
Xorg를 죽이지 말아줬으면 함 :(
-
Fil-C가 첫 번째나 세 번째 문제를 막을 수 있었을까 궁금함
- 내가 보기엔 모두 예방 가능했을 것 같음
-
Twitter가 어떻게 X.com을 가져갔는지 궁금함
반대로 오픈소스 프로젝트가 Twitter.org를 가져갈 수 있었을까?- 90년대 후반 X.com이 PayPal과 합병되었고, Elon Musk가 도메인을 가져간 것임
-
대략적으로 말하면 X11은 이제 옛 게임이나 Steam 클라이언트를 위해 남아 있는 수준임
특히 Steam 클라이언트는 여전히 32비트 실행 파일이라 더 문제임 -
Fil-C에서 SW 렌더링으로 Weston이 잘 돌아가는 걸 보면, X 서버도 Fil-C에서 잘 동작할 것 같음
Fil-C는 비트 연산 중심 코드에서는 오버헤드가 가장 낮고, 포인터 추적 코드에서는 가장 높음
X 서버는 전자에 가깝다고 봄. Weston도 그랬음