xserver/test/pyxtest/proto
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Peter Hutterer a0f5e66caa xkb: NULL text pointer after free in _CheckSetDoodad error path
_CheckSetDoodad() allocates doodad->text.text via _GetCountedString()
and then attempts to allocate doodad->text.font. If the font string
allocation fails (e.g. because the font string length extends past
the request boundary), the error handler frees doodad->text.text but
does not NULL the pointer. The doodad was already added to the geometry
by XkbAddGeomDoodad() before the string allocations, so when
XkbFreeGeometry() runs cleanup, _XkbClearDoodad() frees the same
dangling pointer again, resulting in a double-free.

NULL the pointer after freeing it to prevent the double-free.

This vulnerability was discovered by:
  Anonymous working with TrendAI Zero Day Initiative

ZDI-CAN-31221

CVE-2026-88812

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Assisted-by: Claude:claude-opus-4-6
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2341>
(cherry picked from commit 0d1b1b0bad)
2026-10-20 19:54:36 +02:00
..
__init__.py
bigrequests.py
glx.py glx: validate dataBytes against cmdlen in RenderLarge first request 2026-10-20 19:49:20 +02:00
pcf.py glamor: reject fonts with per-glyph metrics exceeding maxbounds 2026-07-13 16:08:15 +02:00
present.py pyxtest: add test for present notify array byte-swap fix 2026-06-08 14:00:03 +02:00
randr.py pyxtest: add tests for the byteswapping patches 2026-06-08 14:00:03 +02:00
record.py byxtest: add test cases for the RECORD extension CVEs of the last years 2026-06-08 14:00:03 +02:00
render.py Fix use-after-free caused by duplicate glyphs in one glyphset 2026-10-12 15:37:47 +02:00
screensaver.py test/pyxtest: add test for ScreenSaver CreateSaverWindow UAF (ZDI-CAN-30168) 2026-06-08 14:00:03 +02:00
shm.py pyxtest: add tests for the byteswapping patches 2026-06-08 14:00:03 +02:00
sync.py test/pyxtest: add tests for miSyncDestroyFence/FreeCounter (ZDI-CAN-30159/30163) 2026-06-08 14:00:03 +02:00
vidmode.py pyxtest: fix the vidmode SwitchToModeRequest test 2026-06-08 14:00:03 +02:00
x11.py present: unlink notifies from window list in present_clear_window_notifies 2026-10-20 19:49:20 +02:00
xi.py test/pyxtest: add test for ProcXIChangeCursor with window None 2026-06-30 15:57:57 +02:00
xinerama.py pyxtest: add tests for the byteswapping patches 2026-06-08 14:00:03 +02:00
xkb.py xkb: NULL text pointer after free in _CheckSetDoodad error path 2026-10-20 19:54:36 +02:00
xres.py pyxtest: add tests for the byteswapping patches 2026-06-08 14:00:03 +02:00