Opublikowano poprawki do serwera X.Org 21.1.9 oraz komponentu DDX (Device-Dependent X) xwayland 22.2.2, który umożliwia uruchamianie serwera X.Org do obsługi aplikacji X11 w środowiskach opartych na Wayland. W nowych wersjach usunięto luki, które potencjalnie mogą być wykorzystywane do podwyższania uprawnień w systemach, w których serwer X działa z uprawnieniami root, a także do zdalnego wykonywania kodu w konfiguracjach, w których dostęp realizowany jest przez przekierowanie sesji X11 przy użyciu SSH.
Zidentyfikowane problemy:
- CVE-2023-5367 — przepełnienie bufora w funkcjach XIChangeDeviceProperty i RRChangeOutputProperty, które może być wykorzystywane poprzez dołączanie dodatkowych elementów do właściwości urządzenia wejściowego lub właściwości randr. Luka ta występuje od wydania xorg-server 1.4.0 (2007 rok) i jest spowodowana obliczaniem niepoprawnego przesunięcia podczas dołączania dodatkowych elementów do istniejących właściwości, co prowadzi do dodawania elementów z błędnym przesunięciem, a w efekcie do zapisania danych poza przydzielonym buforem. Na przykład, przy dołączeniu 3 elementów do istniejących 5, przydzielana jest pamięć pod tablicę z 8 elementami, ale wcześniej istniejące elementy są zapisywane w nowej tablicy od indeksu 5, a nie 3, co prowadzi do zapisu ostatnich dwóch elementów poza granice bufora.
- CVE-2023-5380 — dostęp do pamięci po jej zwolnieniu (use-after-free) w funkcji DestroyWindow. Problem może być wykorzystywany poprzez przesuwanie wskaźnika pomiędzy ekranami w konfiguracjach wielomonitorowych w trybie zaphod, w którym dla każdego monitora tworzony jest własny ekran, oraz wywołanie funkcji zamykania okna klienta. Luka ta występuje od wydania xorg-server 1.7.0 (2009 rok) i jest spowodowana tym, że po zamknięciu okna i zwolnieniu powiązanej z nim pamięci, w strukturze zapewniającej powiązanie z ekranem pozostaje aktywny wskaźnik do poprzedniego okna. Xwayland nie jest podatny na tę lukę.
- CVE-2023-5574 — dostęp do pamięci po jej zwolnieniu (use-after-free) w funkcji DamageDestroy. Luka ta może być wykorzystywana w serwerze Xvfb podczas czyszczenia struktury ScreenRec w trakcie zamykania serwera lub odłączania ostatniego klienta. Podobnie jak w przypadku wcześniejszej podatności, problem występuje tylko w konfiguracjach wielomonitorowych w trybie Zaphod. Podatność istnieje od wydania xorg-server-1.13.0 (2012 rok) i do tej pory pozostaje nieusunięta (poprawka dostępna tylko w formie łatki).
Oprócz usunięcia podatności w xwayland 23.2.2 dokonano również przejścia z biblioteki libbsd-overlay na libbsd i zaprzestano automatycznego połączenia z interfejsem RemoteDesktop XDG Desktop Portal w celu zidentyfikowania gniazda używanego do wysyłania zdarzeń XTest. serwera Automatyczne połączenie powodowało problemy przy uruchamianiu Xwayland w wewnętrznym serwerze kompozytowym, dlatego w nowej wersji konieczne jest jawne wskazanie opcji „-enable-ei-portal” do połączenia z portalem.
Źródło: opennet.ru
