Публикувани са коригиращи издания на X.Org Server 21.1.12 и DDX компонента (Device-Dependent X) xwayland 23.2.5, който осигурява стартиране на X.Org Server за организиране на изпълнението на X11 приложения в среди, базирани на Wayland. В новата версия на X.Org Server са отстранени 4 уязвимости. Една уязвимост може да бъде експлоатирана за повишаване на правата в системи, в които X-сървърът работи с права на root, както и за отдалечено изпълнение на код в конфигурации, при които достъпът се осигурява чрез пренасочване на X11 сесии с помощта на SSH.
Останалите три уязвимости могат да доведат до изтичане на съдържание от паметта сървър или до аварийно приключване на работа. Тези три уязвимости се експлоатират чрез използване на клиентска страна с различен ред на байтовете, отколкото на сървър. В связи с этим в новом выпуске предложена возможность для блокировки подключения клиентов с систем, имеющих иной порядок байтов. Для отключения можно использовать параметр конфигурации «AllowByteSwappedClients» или опцию командной строки «+byteswappedclients».
Промяната на подразбиращата се стойност предлага защита срещу все още неоткрити уязвимости, манипулиращи реда на байтовете. Същността на тези уязвимости е, че промяната на реда на байтовете за стойности с размер води до тяхното неверно интерпретиране и четене или запис в паметта на значително по-голям размер, отколкото обособеният буфер може да побере.
По подразбиране все още се запазва поддръжката на клиенти с различен ред на байтовете, въпреки че на практика преобразуването на реда на байтовете в последно време се използва изключително рядко, тъй като работните станции, на които се стартира X-сървърът, обикновено са оборудвани с процесори с ред на байтовете little-endian (от малкия към голям байт) и свързването на X-клиенти с ред на байтовете big-endian, като например платформата s390x (IBM zSystems), е рядкост.
Идентифицированные проблемы:
- CVE-2024-31080, CVE-2024-31081, CVE-2024-31082 — чтение данных из области вне буфера через манипуляции с функциями ProcXIGetSelectedEvents, ProcXIPassiveGrabDevice и ProcAppleDRICreatePixmap, которые используют поле с размером без учёта порядка байтов в значении, переданном клиентом. Соответственно, при различиях в порядке следования байтов у клиента и сервера, функции возвращают клиенту больше данных. Первые две проблемы проявляются начиная с выпуска xorg-server-1.7.0 (2009 год), а третья — с xorg-server-1.15.0 (2012 год).
- CVE-2024-31083 — обращение к уже освобождённой памяти (User-after-free) в функции ProcRenderAddGlyphs, которая вызывает функцию AllocateGlyph() для сохранения новых глифов, переданных клиентом. Функция AllocateGlyph() возвращает новый глиф с нулевым счётчиком ссылок (refcount=0), а повторное указание глифа не приводит к увеличению счётчика ссылок, из-за чего массив glyph_new может включать несколько записей, указывающий на один глиф без счётчика ссылок. При освобождении функцией ProcRenderAddGlyphs() памяти, выделенной для глифа, в массиве остаётся и может быть использован лишний экземпляр указателя на глиф, память для которого уже освобождена. Проблема проявляется в X.Org Server и не затрагивает xwayland.
Източник: opennet.ru
