Reddit

17 more vulnerabilities found in X.org libraries

X.Org 클라이언트 라이브러리에서 취약점 17건 발견

X.Org가 libX11, libXi, libXpm, libXrender, libXtst에서 취약점 17건을 수정하고 보안 업데이트를 공개했습니다. 대부분 악의적인 X 서버가 조작한 응답을 클라이언트가 처리할 때 발생하는 메모리 범위 오류이며, X.Org는 권한이 필요한 코드와 GUI를 분리하라고 권고합니다.

에디터 노트

이번 취약점 묶음에서 두드러지는 원인은 서버 응답을 파싱할 때 길이와 개수를 신뢰한 점입니다. 특히 libXi는 장치 클래스와 제어 정보를 여러 경로에서 읽으며, 검증 누락은 범위 밖 읽기뿐 아니라 힙 오버플로로 이어집니다. 업데이트 대상은 라이브러리별로 다르므로 배포판 패키지의 버전을 확인하는 일이 직접적인 조치입니다. Reddit에서는 X11과 Wayland의 보안 경계가 논쟁이 됐지만, 이번 권고는 악의적인 X 서버가 클라이언트 파서를 공격하는 사례를 다룹니다. 댓글에서 설명한 Wayland의 앱 격리는 악의적인 클라이언트가 다른 창이나 입력에 접근하는 문제와 관련되므로 두 관점은 구분해야 합니다. 권고가 강조하는 권한 코드와 GUI의 분리는 취약점 하나를 없애는 처방이라기보다 침해 뒤 영향을 줄이는 설계 지침입니다.

AI 요약

X.Org 보안팀이 2026년 10월 16일 X 클라이언트 라이브러리의 취약점 17건을 공개했습니다. 수정 버전은 libX11 1.8.14, libXi 1.8.4, libXpm 3.5.20, libXrender 0.9.13, libXtst 1.2.6입니다. libX11과 libXi에는 CVE가 배정되지 않은 코드 강화 수정도 포함됐습니다. X.Org는 권한이 필요한 코드와 GUI 코드를 분리하라고 권고했습니다.

라이브러리별 취약점

libX11에는 4건이 있습니다. XKB 응답에서 최대 키코드보다 큰 값을 받아 배열 밖에 쓰는 문제와 XIM 응답의 중첩 속성 길이를 제대로 확인하지 않아 버퍼 밖을 읽는 문제가 포함됩니다. XIM 트리거 키 등록 메시지의 길이 필드가 잘못된 경우에도 범위를 벗어나 읽습니다. 다중 바이트 로케일 파서는 입력 끝에 선행 바이트가 놓이면 다음 바이트를 읽으려 합니다.

libXi에는 9건이 있습니다. 장치 상태와 XI2 장치 클래스 정보를 파싱할 때 서버가 보낸 클래스 길이, 버튼 수, 키코드 수 등을 충분히 검증하지 않아 버퍼 밖을 읽고 클라이언트가 종료될 수 있습니다. 입력 장치 이름과 클래스 목록 파서에도 길이 검증 결함이 있습니다. XGetDeviceControl()에서는 서버 응답의 제어 유형과 호출자가 지정한 유형이 일치하지 않을 때 할당 크기보다 많이 쓰는 힙 버퍼 오버플로가 두 건 발견됐습니다. DEVICE_ENABLE 경로는 할당 크기를 8바이트로 잡지만 12~16바이트를 씁니다.

libXpm의 취약점은 0x0 크기 XPM을 기록할 때 발생합니다. 높이에서 1을 빼는 계산이 부호 없는 정수 언더플로를 일으켜 CPU 사용과 출력이 계속 늘어날 수 있습니다. libXrender는 화면 수보다 큰 하위 픽셀 개수를 응답받으면 할당한 배열 범위를 넘어 씁니다. libXtst에는 RECORD 응답 길이 오류로 버퍼 밖을 읽는 문제와, 처리할 데이터 길이가 0인 응답에서 반복문이 끝나지 않는 문제가 있습니다. 후자는 동기 호출을 멈추거나 비동기 Xlib 응답 처리를 계속 점유할 수 있습니다.

수정 버전과 영향

취약점 상당수는 악의적이거나 침해된 X 서버가 조작한 응답을 보내고 클라이언트가 이를 처리할 때 나타납니다. CVSS 점수는 중간 수준이 대부분이며, libXtst의 RECORD 응답 파서 취약점 한 건은 높음 등급인 7.1입니다. 다만 각 취약점의 공격 조건은 같지 않습니다. 일부는 원격 벡터로 분류됐고, 일부는 로컬 벡터로 평가됐습니다. 배포판 사용자는 각 배포판이 제공하는 수정 패키지를 확인해야 합니다.

Reddit 반응

  • @u/Pitiful-Welcome-399 — X 관련 사람들이 인수를 500개나 쓴 뒤의 모습입니다.
  • @u/chibiace — 악의적인 X 서버를 쓰는 사람들에게는 좋은 소식이겠네요. 대부분은 배포판 저장소에서 공식 소스로 빌드한 서버를 쓸 테고, 그것도 믿을 수 없다면 이미 끝난 거나 다름없겠지만요.
    • @u/aeropl3b — Wayland 논쟁에서 늘 걸리는 부분입니다. Wayland가 실제로 시스템을 보호하는 상황을 만들려면 공격자가 먼저 시스템의 root 권한을 얻어 서버에 들어가거나 서버를 바꿔야 합니다. Wayland가 화면 배율을 처리하는 방식은 이해하지만 저는 아직 필요성을 느끼지 못했습니다.
    • @u/TheBrokenRail-Dev — 전혀 그렇지 않습니다. Wayland는 악의적인 서버로부터 사용자를 보호하려 한 적이 없습니다. 악의적인 클라이언트, 즉 앱이 허가 없이 키 입력이나 다른 창에 접근하지 못하게 하려는 것입니다. 샌드박싱이 제대로 작동해야 하며 Flatpak 같은 기술이 이를 꽤 실현 가능하게 합니다.
    • @u/tadfisher — Wayland와 X11을 혼동하는 것 같습니다. X11은 창 관리자와 클라이언트 앱을 구분하지 않아서 앱마다 창 관리자처럼 키 입력을 가로채거나 화면을 캡처하고 클립보드를 감시할 권한을 갖습니다. X.org 구현에는 큰 허점을 막으려는 프로토콜 확장 기능이 일부 있었지만, X11 생태계는 전역으로 공유하는 atom과 window property에 의존하므로 샌드박싱을 중시한다면 사실상 방법이 없습니다.
    • @u/chibiace — Wayland는 성능이 떨어지는 결과를 낳는 보안 연극입니다.
  • @u/GreatBigPig — 이 취약점들은 전부 이미 수정된 것 같네요.
    • @u/anh0516 — 그렇죠. 책임 있는 공개 절차에서는 수정이 준비된 다음 공개합니다.
    • @u/zackel_flac — 업데이트할 때네요. 왜 반대 표를 받는지 모르겠지만 소프트웨어는 원래 이렇게 작동합니다.
  • @u/ComplexFinance6002 — 이런, X는 나쁘다네요.
  • @u/bytemango2764 — Wayland...
    • @u/aeropl3b — 이제 제대로 작동하나요? 새 OS나 저장소로 업데이트하지 못해서 잘 모르겠습니다.
    • @u/PixelatedGiant — Wayland에서 걸리는 점은 로그인 전 원격 데스크톱입니다. 그러려면 GNOME을 써야 하는 것 같습니다. 다른 데스크톱 환경은 거의 다 시도했는데 바로 작동한 건 GNOME뿐이었습니다. 그 밖의 문제는 기본 Wayland 앱이 아니라 XWayland로 돌아가는 앱에서 주로 생깁니다. 앱이 Wayland로 전환하면 문제가 사라지곤 합니다. 지금은 IntelliJ의 클립보드 처리가 문제입니다.
    • @u/egoalter — 로그인 전에도 새 세션을 만들 로그인 화면에 접속하거나, 원격 데스크톱 소프트웨어가 접근을 허용하는 기존 세션에 연결할 수 있습니다. 어떤 원격 프로토콜과 프로그램을 쓰는지에 따라 차이가 납니다. VNC, Spice, Qemu 터미널 등은 배포판별 지원 여부와 기능이 다릅니다. 데스크톱 환경이 원격 세션 생성에 어떤 영향을 주는지는 모르겠습니다.
    • @u/PixelatedGiant — 로그인한 사용자의 확인을 받는 일반 원격 데스크톱은 잘 작동합니다. 문제는 모니터가 없는 PC입니다. 세션을 만들지 못하는 것 같습니다. 더미 HDMI 동글이나 자동 로그인을 쓰는 방법도 있지만 GNOME은 그런 우회 없이 필요한 RDP 패키지를 설치하면 새 설치에서도 작동합니다. KDE Plasma 로그인에서도 비슷한 문제가 있습니다. 모니터를 끈 채 PC를 켜고 20분 정도 두면 세션이 시작되지 않아 검은 화면과 움직이는 마우스 포인터만 보입니다. 키보드는 TTY 전환 단축키 외에는 반응하지 않습니다.
    • @u/bytemango2764 — 모니터도 없고 자동 로그인도 설정하지 않은 상태에서 전원을 완전히 껐다 켠 뒤 RDP로 접속하면 로그인 화면이 나오고 작동한다는 말인가요? GNOME에서 기본으로 되나요? 어느 배포판이나 최신 GNOME이면 되나요? 우회 방법을 너무 많이 써서 지쳤습니다. 새 krdp를 시험 중인데 여전히 자동 로그인이 필요합니다. RustDesk도 된다고 들었지만 저는 검은 화면만 봤습니다.
    • @u/bytemango2764 — Zorin 18.1을 씁니다. X11에서 Razer 마우스 옆 버튼을 누르면 키보드 전체가 다시 초기화되는 이상한 문제가 있었습니다. 게임 도중 버튼을 누를 때마다 게임이 멈췄습니다. Wayland로 바꾸자 해결됐습니다. 그 뒤로 계속 Wayland를 쓰고 있으며 X11만 지원하는 원격 데스크톱 소프트웨어 외에는 문제를 겪지 않았습니다.

원문: X.Org 보안 권고 / 번역·요약: Trawling