summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2023-1393.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2023-1393.patch')
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2023-1393.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2023-1393.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2023-1393.patch
new file mode 100644
index 0000000000..51d0e0cab6
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2023-1393.patch
@@ -0,0 +1,46 @@
1From 26ef545b3502f61ca722a7a3373507e88ef64110 Mon Sep 17 00:00:00 2001
2From: Olivier Fourdan <ofourdan@redhat.com>
3Date: Mon, 13 Mar 2023 11:08:47 +0100
4Subject: [PATCH] composite: Fix use-after-free of the COW
5
6ZDI-CAN-19866/CVE-2023-1393
7
8If a client explicitly destroys the compositor overlay window (aka COW),
9we would leave a dangling pointer to that window in the CompScreen
10structure, which will trigger a use-after-free later.
11
12Make sure to clear the CompScreen pointer to the COW when the latter gets
13destroyed explicitly by the client.
14
15This vulnerability was discovered by:
16Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
17
18Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
19Reviewed-by: Adam Jackson <ajax@redhat.com>
20
21Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/-/commit/26ef545b3502f61ca722a7a3373507e88ef64110]
22CVE: CVE-2023-1393
23Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
24---
25 composite/compwindow.c | 5 +++++
26 1 file changed, 5 insertions(+)
27
28diff --git a/composite/compwindow.c b/composite/compwindow.c
29index 4e2494b86b..b30da589e9 100644
30--- a/composite/compwindow.c
31+++ b/composite/compwindow.c
32@@ -620,6 +620,11 @@ compDestroyWindow(WindowPtr pWin)
33 ret = (*pScreen->DestroyWindow) (pWin);
34 cs->DestroyWindow = pScreen->DestroyWindow;
35 pScreen->DestroyWindow = compDestroyWindow;
36+
37+ /* Did we just destroy the overlay window? */
38+ if (pWin == cs->pOverlayWin)
39+ cs->pOverlayWin = NULL;
40+
41 /* compCheckTree (pWin->drawable.pScreen); can't check -- tree isn't good*/
42 return ret;
43 }
44--
45GitLab
46