Публикувани са коригиращи версии на X.Org Server 21.1.9 и DDX компонента (Device-Dependent X) xwayland 22.2.2, осигуряващи стартиране на X.Org Server за изпълнение на X11 приложения в среди, базирани на Wayland. В новите версии са отстранени уязвимости, които потенциално могат да бъдат експлоатирани за повишаване на привилегиите в системи, в които X сървърът работи с права root, а също така и за отдалечено изпълнение на код в конфигурации, в които за достъп се използва пренасочване на сесия X11 чрез SSH.
Открити проблеми:
- CVE-2023-5367 — преливане на буфер в функциите XIChangeDeviceProperty и RRChangeOutputProperty, което може да бъде експлоатирано чрез добавяне на допълнителни елементи към свойствата на входното устройство или свойството randr. Уязвимостта се проявява от версия xorg-server 1.4.0 (2007 година) и е предизвикана от неправилно изчисляване на офсета при добавяне на допълнителни елементи към съществуващите свойства, което води до добавяне на елементи с неправилен офсет, който записва извън пределите на заделената памет. Например, при прикрепяне на 3 елемента към 5 съществуващи, ще бъде заделена памет за масив от 8 елемента, но съществуващите елементи ще се съхраняват в новия масив, започвайки от индекс 5, а не 3, което води до записване на последните два елемента извън буфера.
- CVE-2023-5380 — достъп до памет след нейното освобождаване (use-after-free) в функцията DestroyWindow. Проблемът може да бъде експлоатиран чрез преместване на указателя между екрани в многомониторни конфигурации в режим zaphod, където за всеки монитор се създава собствен экран, и извикване на функцията за затваряне на клиентски прозорец. Уязвимостта се проявява от версия xorg-server 1.7.0 (2009 година) и е предизвикана от това, че след затваряне на прозореца и освобождаване на свързаната с него памет, в структурата, осигуряваща свързването с екрана, остава активен указател към предишния прозорец. Xwayland не е подложен на разглежданата уязвимост.
- CVE-2023-5574 — достъп до памет след нейното освобождаване (use-after-free) в функцията DamageDestroy. Уязвимостта може да бъде експлоатирана в сървър Xvfb в процес на почистване на структурата ScreenRec по време на приключване на сървъра или отсъединяване на последния клиент. Както предишната уязвимост, проблемът се проявява само в многомониторни конфигурации в режим Zaphod. Уязвимостта присъства от версията xorg-server-1.13.0 (2012 година) и все още остава нерешена (поправката е само под формата на патч).
Освен отстраняването на уязвимостите в xwayland 23.2.2, е осъществена и смяна от библиотеката libbsd-overlay на libbsd и прекратено автоматичното свързване с интерфейса RemoteDesktop XDG Desktop Portal за определяне на сокета, използван за изпращане на композитни сървъра събития XTest. Автоматичното свързване създаваше проблеми при стартиране на Xwayland в вложен композитен сървър, затова в новата версия за свързване с портала е необходимо явно да се укаже опцията „-enable-ei-portal“.
Източник: opennet.ru
