Name
xwayland
Version
22.1.8
Type
library
Description
XWayland is an X Server that runs under Wayland.
Licenses
MIT
PURL
-
CPE
cpe:2.3:*:x.org:xwayland:22.1.8:*:*:*:*:*:*:*
Other Versions#
Patches#
#
Title
Author
Resolve
1
Xi: flush hierarchy events after adding/removing master
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2024-21885
2
dix: Dequeue pending events on frozen device on removal
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26600
3
xkb: Fix buffer overflow in _XkbSetCompatMap()
Matthieu Herrb <matthieu@herrb.eu>
CVE-2024-9632
4
sync: Do not fail SyncAddTriggerToSyncObject()
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26601
5
xkb: Fix buffer overflow in XkbChangeTypesOfKey()
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26597
6
randr: avoid integer truncation in length check of
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2023-6478
7
randr: Check for overflow in RRChangeProviderProperty()
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-49180
8
dix: Hold input lock for AttachDevice()
tholin <thomas.lindroth@gmail.com>
CVE-2022-49737
9
composite: Handle failure to redirect in compRedirectWindow()
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26599
10
Cursor: Refuse to free the root cursor
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26594
11
os: Account for bytes to ignore when sharing input buffer
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-49178
12
xfixes: Check request length for SetClientDisconnectMode
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-49177
13
Xi: require a pointer and keyboard device for
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2024-0229
14
Xi: ProcXIPassiveGrabDevice needs to use unswapped length to
Alan Coopersmith <alan.coopersmith@oracle.com>
CVE-2024-31081
15
sync: Check values before applying changes
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26601
16
xkb: Make the RT_XKBCLIENT resource private
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-62230
17
dix: allocate enough space for logical button maps
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2023-6816
18
render: Avoid possible double-free in ProcRenderAddGlyphs()
Olivier Fourdan <ofourdan@redhat.com>
CVE-2024-31083
19
glx: Call XACE hooks on the GLX buffer
Olivier Fourdan <ofourdan@redhat.com>
CVE-2024-0408
20
dix: fix DeviceStateNotify event calculation
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2024-0229
21
Xi: Fix barrier device search
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26598
22
os: Check for integer overflow on BigRequest length
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-49176
23
present: Fix use-after-free in present_create_notifies()
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-62229
24
xkb: Prevent overflow in XkbSetCompatMap()
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-62231
25
Xi: ProcXIGetSelectedEvents needs to use unswapped length to
Alan Coopersmith <alan.coopersmith@oracle.com>
CVE-2024-31080
26
render: fix refcounting of glyphs during ProcRenderAddGlyphs
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2024-31083
27
render: Avoid 0 or less animated cursors
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-49175
28
record: Check for overflow in
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-49179
29
os: Do not overflow the integer size with BigRequest
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-49176
30
mi: reset the PointerWindows reference on screen switch
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2023-5380
31
Xi: allocate enough XkbActions for our buttons
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2023-6377
32
Xi: do not keep linked list pointer during recursion
=?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= <jexposit@redhat.com>
CVE-2024-21886
33
composite: initialize border clip even when pixmap alloc
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26599
34
dix: keep a ref to the rootCursor
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2025-26594
35
xkb: Fix buffer overflow in XkbVModMaskText()
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26595
36
ephyr,xwayland: Use the proper private key for cursor
Olivier Fourdan <ofourdan@redhat.com>
CVE-2024-0409
37
Xi/randr: fix handling of PropModeAppend/Prepend
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2023-5367
38
xkb: Free the XKB resource when freeing XkbInterest
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-62230
39
sync: Do not let sync objects uninitialized
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26601
40
xkb: Fix computation of XkbSizeKeySyms
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26596
41
Xi: when creating a new ButtonClass, set the number of
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2024-0229
42
dix: Allocate sufficient xEvents for our DeviceStateNotify
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2024-0229
43
dix: when disabling a master, float disabled slaved devices
Peter Hutterer <peter.hutterer@who-t.net>
CVE-2024-21886
44
sync: Apply changes last in SyncChangeAlarmAttributes()
Olivier Fourdan <ofourdan@redhat.com>
CVE-2025-26601
Vulnerabilities#
Name
Analysis
Description
Exploitable
An out-of-bounds write flaw was found in the X.Org X server and Xwayland in DRIGetBuffers/DRIGetBuffersWithFormat. A client that requests multiple DRI2BufferBackLeft attachments and one DRI2BufferFrontLeft can trigger an out-of-bounds heap write. This may be used to crash the server, or for privilege escalation if the X server runs as root.
Exploitable
A use-after-free flaw was found in the X.Org X server and Xwayland in CreateSaverWindow(). A client can trigger a use-after-free read after changing window attributes and forcing the screen saver, leading to information disclosure.
Exploitable
An out-of-bounds read flaw was found in the X.Org X server and Xwayland in __glXDisp_ChangeDrawableAttributes(). A wrong size validation check can read a client-controlled number of bytes, exceeding the request buffer, leading to information disclosure. A write path also exists but requires byte-swapped clients which is disabled by default.
Exploitable
A use-after-free flaw was found in the X.Org X server and Xwayland in SyncChangeCounter(). A client that sets up multiple SyncCounters can trigger a use-after-free when destroying those counters via a second client connection while changing those counters. This may be used to crash the server, or for privilege escalation if the X server runs as root.
Exploitable
A use-after-free flaw was found in the X.Org X server and Xwayland in FreeCounter(). A client that sets up multiple SyncCounters and awaits on those triggers can trigger a use-after-free when destroying those counters via a second client connection. This may be used to crash the server, or for privilege escalation if the X server runs as root.
Exploitable
A stack-based buffer overflow flaw was found in the X.Org X server and Xwayland. _XkbSetMapChecks() declares a fixed-size stack buffer mapWidths[256] indexed by key type index. The helper function CheckKeyTypes() writes to this buffer at a client-controlled offset, allowing a stack buffer overflow. This may be used to crash the server, or for privilege escalation if the X server runs as root.
Exploitable
A stack-based buffer overflow flaw was found in the X.Org X server and Xwayland. The X server has multiple stack buffers sized XkbMaxShiftLevel * XkbNumKbdGroups but CheckKeyTypes() does not verify or clamp non-canonical key types to XkbMaxShiftLevel. A client can change key types to excessive shift levels and trigger stack overflows. This is caused by an incomplete fix of CVE-2025-26597. This may be used to crash the server, or for privilege escalation if the X server runs as root.
Exploitable
A use-after-free flaw was found in the X.Org X server and Xwayland in miSyncDestroyFence(). A client that sets up multiple fence triggers can trigger a use-after-free function pointer call. An attacker would connect to the X server to set up a fence and await that fence, then a second X connection destroys the fence, causing the use-after-free. This may be used to crash the server, or for privilege escalation if the X server runs as root.
Exploitable
A stack-based buffer overflow flaw was found in the X.Org X server and Xwayland. A mismatch between the X server and the libXfont2 library's maximum font name length can cause a stack buffer overflow during font alias resolution. The server allocates a 256 byte stack buffer but libXfont2's alias target name length is 1024 bytes. A font alias name between 257 and 1023 bytes causes the X server to copy that name into the undersized stack buffer without further checks. This may be used to crash the server, or for privilege escalation if the X server runs as root.
Patched
A flaw was identified in the X.Org X server’s X Keyboard (Xkb) extension where improper bounds checking in the XkbSetCompatMap() function can cause an unsigned short overflow. If an attacker sends specially crafted input data, the value calculation may overflow, leading to memory corruption or a crash.
Patched
A flaw was discovered in the X.Org X server’s X Keyboard (Xkb) extension when handling client resource cleanup. The software frees certain data structures without properly detaching related resources, leading to a use-after-free condition. This can cause memory corruption or a crash when affected clients disconnect.
Patched
A flaw was found in the X.Org X server and Xwayland when processing X11 Present extension notifications. Improper error handling during notification creation can leave dangling pointers that lead to a use-after-free condition. This can cause memory corruption or a crash, potentially allowing an attacker to execute arbitrary code or cause a denial of service.
Patched
A flaw was found in the RandR extension, where the RRChangeProviderProperty function does not properly validate input. This issue leads to an integer overflow when computing the total size to allocate.
Patched
A flaw was found in the X Record extension. The RecordSanityCheckRegisterClients function does not check for an integer overflow when computing request length, which allows a client to bypass length checks.
Patched
A flaw was found in the X server's request handling. Non-zero 'bytes to ignore' in a client's request can cause the server to skip processing another client's request, potentially leading to a denial of service.
Patched
A flaw was found in the XFIXES extension. The XFixesSetClientDisconnectMode handler does not validate the request length, allowing a client to read unintended memory from previous requests.
Patched
A flaw was found in the Big Requests extension. The request length is multiplied by 4 before checking against the maximum allowed size, potentially causing an integer overflow and bypassing the size check.
Patched
A flaw was found in the X Rendering extension's handling of animated cursors. If a client provides no cursors, the server assumes at least one is present, leading to an out-of-bounds read and potential crash.
Patched
A use-after-free flaw was found in X.Org and Xwayland. 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, possibly causing a use-after-free when the alarm eventually triggers.
Patched
A use-after-free flaw was found in X.Org and Xwayland. When a device is removed while still frozen, the events queued for that device remain while the device is freed. Replaying the events will cause a use-after-free.
Patched
An access to an uninitialized pointer flaw was found in X.Org and Xwayland. The function compCheckRedirect() may fail if it cannot allocate the backing pixmap. In that case, compRedirectWindow() will return a BadAlloc error without validating the window tree marked just before, which leaves the validated data partly initialized and the use of an uninitialized pointer later.
Patched
An out-of-bounds write flaw was found in X.Org and Xwayland. 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 is found, which can lead to out-of-bounds memory access.
Patched
A buffer overflow flaw was found in X.Org and Xwayland. If XkbChangeTypesOfKey() is called with a 0 group, it will resize the key symbols table to 0 but leave the key actions unchanged. If the same function is later called with a non-zero value of groups, this will cause a buffer overflow because the key actions are of the wrong size.
Patched
A heap overflow flaw was found in X.Org and Xwayland. The computation of the length in XkbSizeKeySyms() differs from what is written in XkbWriteKeySyms(), which may lead to a heap-based buffer overflow.
Patched
A buffer overflow flaw was found in X.Org and Xwayland. 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 fails to check the bounds of the buffer and would copy the data regardless of the size.
Patched
A use-after-free flaw was found in X.Org and Xwayland. The root cursor is referenced in the X server as a global variable. If a client frees the root cursor, the internal reference points to freed memory and causes a use-after-free.
Patched
A flaw was found in the X.org server. Due to improperly tracked allocation size in _XkbSetCompatMap, a local attacker may be able to trigger a buffer overflow condition via a specially crafted payload, leading to denial of service or local privilege escalation in distributions where the X.org server is run with root privileges.
Patched
A use-after-free vulnerability was found in the ProcRenderAddGlyphs() function of Xorg servers. This issue occurs when AllocateGlyph() is called to store new glyphs sent by the client to the X server, potentially resulting in multiple entries pointing to the same non-refcounted glyphs. Consequently, ProcRenderAddGlyphs() may free a glyph, leading to a use-after-free scenario when the same glyph pointer is subsequently accessed. This flaw allows an authenticated attacker to execute arbitrary code on the system by sending a specially crafted request.
Patched
A heap-based buffer over-read vulnerability was found in the X.org server's ProcXIPassiveGrabDevice() function. This issue occurs when byte-swapped length values are used in replies, potentially leading to memory leakage and segmentation faults, particularly when triggered by a client with a different endianness. This vulnerability could be exploited by an attacker to cause the X server to read heap memory values and then transmit them back to the client until encountering an unmapped page, resulting in a crash. Despite the attacker's inability to control the specific memory copied into the replies, the small length values typically stored in a 32-bit integer can result in significant attempted out-of-bounds reads.
Patched
A heap-based buffer over-read vulnerability was found in the X.org server's ProcXIGetSelectedEvents() function. This issue occurs when byte-swapped length values are used in replies, potentially leading to memory leakage and segmentation faults, particularly when triggered by a client with a different endianness. This vulnerability could be exploited by an attacker to cause the X server to read heap memory values and then transmit them back to the client until encountering an unmapped page, resulting in a crash. Despite the attacker's inability to control the specific memory copied into the replies, the small length values typically stored in a 32-bit integer can result in significant attempted out-of-bounds reads.
Patched
A heap buffer overflow flaw was found in the DisableDevice function in the X.Org server. This issue may lead to an application crash or, in some circumstances, remote code execution in SSH X11 forwarding environments.
Patched
A flaw was found in X.Org server. In the XISendDeviceHierarchyEvent function, it is possible to exceed the allocated array length when certain new device IDs are added to the xXIHierarchyInfo struct. This can trigger a heap buffer overflow condition, which may lead to an application crash or remote code execution in SSH X11 forwarding environments.
Patched
A flaw was found in the X.Org server. The cursor code in both Xephyr and Xwayland uses the wrong type of private at creation. It uses the cursor bits type with the cursor as private, and when initiating the cursor, that overwrites the XSELINUX context.
Patched
A flaw was found in the X.Org server. The GLX PBuffer code does not call the XACE hook when creating the buffer, leaving it unlabeled. When the client issues another request to access that resource (as with a GetGeometry) or when it creates another resource that needs to access that buffer, such as a GC, the XSELINUX code will try to use an object that was never labeled and crash because the SID is NULL.
Patched
An out-of-bounds memory access flaw was found in the X.Org server. This issue can be triggered when a device frozen by a sync grab is reattached to a different master device. This issue may lead to an application crash, local privilege escalation (if the server runs with extended privileges), or remote code execution in SSH X11 forwarding environments.
Patched
A flaw was found in X.Org server. Both DeviceFocusEvent and the XIQueryPointer reply contain a bit for each logical button currently down. Buttons can be arbitrarily mapped to any value up to 255, but the X.Org Server was only allocating space for the device's particular number of buttons, leading to a heap overflow if a bigger value was used.
Patched
A flaw was found in xorg-server. A specially crafted request to RRChangeProviderProperty or RRChangeOutputProperty can trigger an integer overflow which may lead to a disclosure of sensitive information.
Patched
A flaw was found in xorg-server. Querying or changing XKB button actions such as moving from a touchpad to a mouse can result in out-of-bounds memory reads and writes. This may allow local privilege escalation or possible remote code execution in cases where X11 forwarding is involved.
Patched
A use-after-free flaw was found in the xorg-x11-server. An X server crash may occur in a very specific and legacy configuration (a multi-screen setup with multiple protocol screens, also known as Zaphod mode) if the pointer is warped from within a window on one screen to the root window of the other screen and if the original window is destroyed followed by another window being destroyed.
Patched
A out-of-bounds write flaw was found in the xorg-x11-server. This issue occurs due to an incorrect calculation of a buffer offset when copying data stored in the heap in the XIChangeDeviceProperty function in Xi/xiproperty.c and in RRChangeOutputProperty function in randr/rrproperty.c, allowing for possible escalation of privileges or denial of service.
Patched
In X.Org X server 20.11 through 21.1.16, when a client application uses easystroke for mouse gestures, the main thread modifies various data structures used by the input thread without acquiring a lock, aka a race condition. In particular, AttachDevice in dix/devices.c does not acquire an input lock.