![]() |
|
Message-ID: <CAP=2yyRYONPtatTqHa3FkOw5md-h1PhZiwxAbTKNUmCWaZLRPw@mail.gmail.com> Date: Tue, 25 Feb 2025 16:41:30 +0100 From: Olivier Fourdan <ofourdan@...hat.com> To: oss-security@...ts.openwall.com Subject: Fwd: X.Org Security Advisory: multiple security issues X.Org X server and Xwayland ---------- Forwarded message --------- From: Olivier Fourdan <ofourdan@...hat.com> Date: Tue, Feb 25, 2025 at 4:39 PM Subject: X.Org Security Advisory: multiple security issues X.Org X server and Xwayland To: <xorg-announce@...ts.x.org> Cc: <xorg@...ts.x.org>, xorg-devel <xorg-devel@...ts.x.org> ====================================================================== X.Org Security Advisory: February 25, 2025 Issues in X.Org X server prior to 21.1.16 and Xwayland prior to 24.1.6 ====================================================================== Multiple issues have been found in the X server and Xwayland implementations published by X.Org for which we are releasing security fixes for in xorg-server-21.1.16 and xwayland-24.1.6. 1) CVE-2025-26594: Use-after-free of the root cursor Introduced in: Unknown - Prior to X11R6.6 Xorg baseline Fixed in: xorg-server-21.1.16 and xwayland-24.1.6 Fix: https://gitlab.freedesktop.org/xorg/xserver/-/commit/01642f26 https://gitlab.freedesktop.org/xorg/xserver/-/commit/b0a09ba6 Found by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative The root cursor is referenced in the xserver as a global variable. If a client manages to free the root cursor, the internal reference points to freed memory and causes a use-after-free. xorg-server-21.1.16 and xwayland-24.1.6 have been patched to fix this issue. 2) CVE-2025-26595: Buffer overflow in XkbVModMaskText() Introduced in: Prior to X11R6.1 Fixed in: xorg-server-21.1.16 and xwayland-24.1.6 Fix: https://gitlab.freedesktop.org/xorg/xserver/-/commit/11fcda87 Found by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative The code in XkbVModMaskText() allocates a fixed sized buffer on the stack and copies the names of the virtual modifiers to that buffer. The code however fails to check the bounds of the buffer correctly and would copy the data regardless of the size, which may lead to a buffer overflow. xorg-server-21.1.16 and xwayland-24.1.6 have been patched to fix this issue. 3) CVE-2025-26596: Heap overflow in XkbWriteKeySyms() Introduced in: initial version of xc/programs/Xserver/xkb/xkb.c in X11R6 Fixed in: xorg-server-21.1.16 and xwayland-24.1.6 Fix: https://gitlab.freedesktop.org/xorg/xserver/-/commit/80d69f01 Found by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative The computation of the length in XkbSizeKeySyms() differs from what is actually written in XkbWriteKeySyms(), which may lead to a heap based buffer overflow. xorg-server-21.1.16 and xwayland-24.1.6 have been patched to fix this issue. 4) CVE-2025-26597: Buffer overflow in XkbChangeTypesOfKey() Introduced in: X11R6.1 Fixed in: xorg-server-21.1.16 and xwayland-24.1.6 Fix: https://gitlab.freedesktop.org/xorg/xserver/-/commit/0e4ed949 Found by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative If XkbChangeTypesOfKey() is called with 0 group, it will resize the key symbols table to 0 but leave the key actions unchanged. If later, the same function is called with a non-zero value of groups, this will cause a buffer overflow because the key actions are of the wrong size. 5) CVE-2025-26598: Out-of-bounds write in CreatePointerBarrierClient() Introduced in: xorg-server-1.14.0 Fixed in: xorg-server-21.1.16 and xwayland-24.1.6 Fix: https://gitlab.freedesktop.org/xorg/xserver/-/commit/bba9df1a Found by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative The function GetBarrierDevice() searches for the pointer device based on its device id and returns the matching value, or supposedly NULL if no match was found. However the code will return the last element of the list if no matching device id was found which can lead to out of bounds memory access. 6) CVE-2025-26599: Use of uninitialized pointer in compRedirectWindow() Introduced in: Xorg 6.8.0. Fixed in: xorg-server-21.1.16 and xwayland-24.1.6 Fix: https://gitlab.freedesktop.org/xorg/xserver/-/commit/c1ff84be https://gitlab.freedesktop.org/xorg/xserver/-/commit/b07192a8 Found by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative The function compCheckRedirect() may fail if it cannot allocate the backing pixmap. In that case, compRedirectWindow() will return a BadAlloc error without the validation of the window tree marked just before, which leaves the validate data partly initialized, and the use of an uninitialized pointer later. 7) CVE-2025-26600: Use-after-free in PlayReleasedEvents() Introduced in: X11R5 Fixed in: xorg-server-21.1.16 and xwayland-24.1.6 Fix: https://gitlab.freedesktop.org/xorg/xserver/-/commit/6e0f332b Found by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative When a device is removed while still frozen, the events queued for that device remain while the device itself is freed and replaying the events will cause a use after free. 8) CVE-2025-26601: Use-after-free in SyncInitTrigger() Introduced in: X11R6 Fixed in: xorg-server-21.1.16 and xwayland-24.1.6 Fix: https://gitlab.freedesktop.org/xorg/xserver/-/commit/16a1242d https://gitlab.freedesktop.org/xorg/xserver/-/commit/f52cea2f https://gitlab.freedesktop.org/xorg/xserver/-/commit/8cbc90c8 https://gitlab.freedesktop.org/xorg/xserver/-/commit/c2857989 Found by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative When changing an alarm, the values of the change mask are evaluated one after the other, changing the trigger values as requested and eventually, SyncInitTrigger() is called. If one of the changes triggers an error, the function will return early, not adding the new sync object. This can be used to cause a use after free when the alarm eventually triggers. Content of type "text/html" skipped View attachment "OpenPGP_0x14706DBE1E4B4540.asc" of type "text/plain" (3037 bytes) View attachment "OpenPGP_signature.asc" of type "text/plain" (209 bytes)
Powered by blists - more mailing lists
Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.