Summary
Jan-Niklas Sohn discovered that the X.Org X Server incorrectly handled
certain memory operations. An attacker could use these issues to cause the
X Server to crash, leading to a denial of service, or possibly execute
arbitrary code.
Fixed packages 5
| Release | Package | Fixed in |
|---|---|---|
| Ubuntu · 20.04 LTS 20.04:LTS | xorg-server | 2:1.20.13-1ubuntu1~20.04.19 |
| Ubuntu · 22.04 LTS 22.04:LTS | xorg-server | 2:21.1.4-2ubuntu1.7~22.04.13 |
| Ubuntu · 22.04 LTS 22.04:LTS | xwayland | 2:22.1.1-1ubuntu0.17 |
| Ubuntu · 24.04 LTS 24.04:LTS | xorg-server | 2:21.1.12-1ubuntu1.2 |
| Ubuntu · 24.04 LTS 24.04:LTS | xwayland | 2:23.2.6-1ubuntu0.4 |
Vulnerabilities 8
-
High 7.8
X.org: xwayland: use-after-free of the root cursor
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.
-
High 7.8
Xorg: xwayland: buffer overflow in xkbvmodmasktext()
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…
-
High 7.8
Xorg: xwayland: heap overflow in xkbwritekeysyms()
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.
-
High 7.8
Xorg: xwayland: buffer overflow in xkbchangetypesofkey()
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, thi…
-
High 7.8
Xorg: xwayland: out-of-bounds write in createpointerbarrierclient()
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 la…
-
High 7.8
Xorg: xwayland: use of uninitialized pointer in compredirectwindow()
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 …
-
High 7.8
Xorg: xwayland: use-after-free in playreleasedevents()
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.
-
High 7.8
Xorg: xwayland: use-after-free in syncinittrigger()
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 trigge…
References
-
report
https://ubuntu.com/security/CVE-2025-26594
-
report
https://ubuntu.com/security/CVE-2025-26595
-
report
https://ubuntu.com/security/CVE-2025-26596
-
report
https://ubuntu.com/security/CVE-2025-26597
-
report
https://ubuntu.com/security/CVE-2025-26598
-
report
https://ubuntu.com/security/CVE-2025-26599
-
report
https://ubuntu.com/security/CVE-2025-26600
-
report
https://ubuntu.com/security/CVE-2025-26601