diff options
Diffstat (limited to 'meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-4009.patch')
-rw-r--r-- | meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-4009.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-4009.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-4009.patch new file mode 100644 index 0000000000..ddfbb43ee4 --- /dev/null +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-4009.patch | |||
@@ -0,0 +1,50 @@ | |||
1 | Backport patch to fix CVE-2021-4009. | ||
2 | |||
3 | CVE: CVE-2021-4009 | ||
4 | Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/-/commit/b519675] | ||
5 | |||
6 | Signed-off-by: Kai Kang <kai.kang@windriver.com> | ||
7 | |||
8 | From b5196750099ae6ae582e1f46bd0a6dad29550e02 Mon Sep 17 00:00:00 2001 | ||
9 | From: Povilas Kanapickas <povilas@radix.lt> | ||
10 | Date: Tue, 14 Dec 2021 15:00:01 +0200 | ||
11 | Subject: [PATCH] xfixes: Fix out of bounds access in | ||
12 | *ProcXFixesCreatePointerBarrier() | ||
13 | |||
14 | ZDI-CAN-14950, CVE-2021-4009 | ||
15 | |||
16 | This vulnerability was discovered and the fix was suggested by: | ||
17 | Jan-Niklas Sohn working with Trend Micro Zero Day Initiative | ||
18 | |||
19 | Signed-off-by: Povilas Kanapickas <povilas@radix.lt> | ||
20 | --- | ||
21 | xfixes/cursor.c | 6 ++++-- | ||
22 | 1 file changed, 4 insertions(+), 2 deletions(-) | ||
23 | |||
24 | diff --git a/xfixes/cursor.c b/xfixes/cursor.c | ||
25 | index 60580b88f..c5d4554b2 100644 | ||
26 | --- a/xfixes/cursor.c | ||
27 | +++ b/xfixes/cursor.c | ||
28 | @@ -1010,7 +1010,8 @@ ProcXFixesCreatePointerBarrier(ClientPtr client) | ||
29 | { | ||
30 | REQUEST(xXFixesCreatePointerBarrierReq); | ||
31 | |||
32 | - REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, pad_to_int32(stuff->num_devices)); | ||
33 | + REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, | ||
34 | + pad_to_int32(stuff->num_devices * sizeof(CARD16))); | ||
35 | LEGAL_NEW_RESOURCE(stuff->barrier, client); | ||
36 | |||
37 | return XICreatePointerBarrier(client, stuff); | ||
38 | @@ -1027,7 +1028,8 @@ SProcXFixesCreatePointerBarrier(ClientPtr client) | ||
39 | |||
40 | swaps(&stuff->length); | ||
41 | swaps(&stuff->num_devices); | ||
42 | - REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, pad_to_int32(stuff->num_devices)); | ||
43 | + REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, | ||
44 | + pad_to_int32(stuff->num_devices * sizeof(CARD16))); | ||
45 | |||
46 | swapl(&stuff->barrier); | ||
47 | swapl(&stuff->window); | ||
48 | -- | ||
49 | GitLab | ||
50 | |||