From fc46ca3353151082f1454dfb4d3ed5f32a3dca75 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 5 Dec 2022 15:55:54 +1000 Subject: xkb: reset the radio_groups pointer to NULL after freeing it Unlike other elements of the keymap, this pointer was freed but not reset. On a subsequent XkbGetKbdByName request, the server may access already freed memory. CVE-2022-4283, ZDI-CAN-19530 This vulnerability was discovered by: Jan-Niklas Sohn working with Trend Micro Zero Day Initiative Signed-off-by: Peter Hutterer Acked-by: Olivier Fourdan (cherry picked from commit ccdd431cd8f1cabae9d744f0514b6533c438908c) --- xkb/xkbUtils.c | 1 + 1 file changed, 1 insertion(+) diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c index 8975ade8d..9bc51fc71 100644 --- a/xkb/xkbUtils.c +++ b/xkb/xkbUtils.c @@ -1327,6 +1327,7 @@ _XkbCopyNames(XkbDescPtr src, XkbDescPtr dst) } else { free(dst->names->radio_groups); + dst->names->radio_groups = NULL; } dst->names->num_rg = src->names->num_rg; -- cgit v1.2.3