Issues in X.Org X server prior to 21.1.10 and Xwayland prior to 23.2.3 ======================================================================== 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.10 and xwayland-23.2.3. 1) CVE-2023-6377 can be triggered by forcing a logical device change on a device with buttons which will result in an out-of-bounds memory write. 2) CVE-2023-6478 can be triggered by sending a specially crafted request RRChangeProviderProperty or RRChangeOutputProperty. This will trigger an integer overflow and lead to disclosure of information. ------------------------------------------------------------------------ 1) CVE-2023-6377: X.Org server: Out-of-bounds memory write in XKB button actions Introduced in: xorg-server-1.6.0 (2009) Fixed in: xorg-server-21.1.10 and xwayland-23.2.3 Fix: https://gitlab.freedesktop.org/xorg/xserver/-/commit/0c1a93d319558fe3ab2d94f51d174b4f93810afd Found by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative A device has XKB button actions for each button on the device. When a logical device switch happens (e.g. moving from a touchpad to a mouse), the server re-calculates the information available on the respective master device (typically the Virtual Core Pointer). This re-calculation only allocated enough memory for a single XKB action rather instead of enough for the newly active physical device's number of button. As a result, querying or changing the XKB button actions results in out-of-bounds memory reads and writes. This may lead to local privilege escalation if the server is run as root or remote code execution (e.g. x11 over ssh). xorg-server-21.1.10 and xwayland-23.2.3 have been patched to fix this issue. 2) CVE-2023-6478: X.Org server: Out-of-bounds memory read in RRChangeOutputProperty and RRChangeProviderProperty Introduced in: xorg-server-1.4.0 (2007) and xorg-server-1.13.0 (2012), respectively Fixed in: xorg-server-21.1.10 and xwayland-23.2.3 Fix: https://gitlab.freedesktop.org/xorg/xserver/-/commit/14f480010a93ff962fef66a16412fafff81ad632 Found by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative This fixes an OOB read and the resulting information disclosure. Length calculation for the request was clipped to a 32-bit integer. With the correct stuff->nUnits value the expected request size was truncated, passing the REQUEST_FIXED_SIZE check. The server then proceeded with reading at least stuff->nUnits bytes (depending on stuff->format) from the request and stuffing whatever it finds into the property. In the process it would also allocate at least stuff->nUnits bytes, i.e. 4GB. See also CVE-2022-46344 where this issue was fixed for other requests. xorg-server-21.1.10 and xwayland-23.2.3 have been patched to fix this issue.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a05add7c742e8df0d21cf9a8230759d3e87b95bc commit a05add7c742e8df0d21cf9a8230759d3e87b95bc Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2023-12-13 17:39:24 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2023-12-13 17:41:37 +0000 x11-base/xwayland: Version bump to 23.2.3 Bug: https://bugs.gentoo.org/919803 Signed-off-by: Matt Turner <mattst88@gentoo.org> x11-base/xwayland/Manifest | 1 + x11-base/xwayland/xwayland-23.2.3.ebuild | 109 +++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7fc981d27464d1df9b95d5a24217a670cbff5e88 commit 7fc981d27464d1df9b95d5a24217a670cbff5e88 Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2023-12-13 17:37:00 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2023-12-13 17:41:37 +0000 x11-base/xorg-server: Version bump to 21.1.10 Bug: https://bugs.gentoo.org/919803 Signed-off-by: Matt Turner <mattst88@gentoo.org> x11-base/xorg-server/Manifest | 1 + x11-base/xorg-server/xorg-server-21.1.10.ebuild | 192 ++++++++++++++++++++++++ 2 files changed, 193 insertions(+)
Thanks! Please stable when ready.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=af7147991b6712d002ebe15e1c667752e879a30e commit af7147991b6712d002ebe15e1c667752e879a30e Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2024-01-17 16:34:35 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2024-01-17 16:36:02 +0000 x11-base/xorg-server: Drop old versions Bug: https://bugs.gentoo.org/919803 Signed-off-by: Matt Turner <mattst88@gentoo.org> x11-base/xorg-server/Manifest | 1 - ...1.9-xephyr-Don-t-check-for-SeatId-anymore.patch | 66 ------- x11-base/xorg-server/xorg-server-21.1.10.ebuild | 192 -------------------- x11-base/xorg-server/xorg-server-21.1.9.ebuild | 194 --------------------- 4 files changed, 453 deletions(-) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d94abd39d8319993255f94cc6aaa352c81ec9f52 commit d94abd39d8319993255f94cc6aaa352c81ec9f52 Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2024-01-17 16:35:23 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2024-01-17 16:36:02 +0000 x11-base/xwayland: Drop old versions Bug: https://bugs.gentoo.org/919803 Signed-off-by: Matt Turner <mattst88@gentoo.org> x11-base/xwayland/Manifest | 1 - x11-base/xwayland/xwayland-23.2.2.ebuild | 110 ------------------------------- 2 files changed, 111 deletions(-)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/data/glsa.git/commit/?id=7b7fdd5a86cd28fc118fb133c98e81e2b15e0b92 commit 7b7fdd5a86cd28fc118fb133c98e81e2b15e0b92 Author: GLSAMaker <glsamaker@gentoo.org> AuthorDate: 2024-01-31 11:33:19 +0000 Commit: Hans de Graaff <graaff@gentoo.org> CommitDate: 2024-01-31 11:35:22 +0000 [ GLSA 202401-30 ] X.Org X Server, XWayland: Multiple Vulnerabilities Bug: https://bugs.gentoo.org/916254 Bug: https://bugs.gentoo.org/919803 Bug: https://bugs.gentoo.org/922395 Signed-off-by: GLSAMaker <glsamaker@gentoo.org> Signed-off-by: Hans de Graaff <graaff@gentoo.org> glsa-202401-30.xml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+)