Апублікаваны якія карэктуюць выпускі 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 (ад малодшага да старэйшых). big-endian, такіх як платформа s390x (IBM zSystems), з'яўляецца вялікай рэдкасцю.
Выяўленыя праблемы:
- CVE-2024-31080, CVE-2024-31081, CVE-2024-31082 - чытанне дадзеных з вобласці па-за буферам праз маніпуляцыі з функцыямі ProcXIGetSelectedEvents, ProcXIPassiveGrabDevice і ProcAppleDRICreatePix значэнні, перададзеным кліентам. Адпаведна, пры адрозненнях у парадку прытрымлівання байтаў у кліента і сервера, функцыі вяртаюць кліенту больш дадзеных. Першыя дзве праблемы выяўляюцца пачынаючы з выпуску 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
