Description
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_clipboard_format_equal` reads freed `lastSentFormats` memory because `xf_clipboard_formats_free` (called from the cliprdr channel thread during auto-reconnect) frees the array while the X11 event thread concurrently iterates it in `xf_clipboard_changed`, triggering a heap use after free. Version 3.23.0 fixes the issue.
Problem types
Product status
References
github.com/...reeRDP/security/advisories/GHSA-q5j3-m6jf-3jq4
github.com/...reeRDP/security/advisories/GHSA-q5j3-m6jf-3jq4
github.com/...ommit/58409406afe7c2a8a71ed2dc8e22075be4f41c0c
github.com/...806c2a5c583ca39dd9ef1e/client/X11/xf_cliprdr.c
github.com/...806c2a5c583ca39dd9ef1e/client/X11/xf_cliprdr.c
github.com/...806c2a5c583ca39dd9ef1e/client/X11/xf_cliprdr.c
github.com/...806c2a5c583ca39dd9ef1e/client/X11/xf_cliprdr.c
github.com/...806c2a5c583ca39dd9ef1e/client/X11/xf_cliprdr.c
github.com/...806c2a5c583ca39dd9ef1e/client/X11/xf_cliprdr.c
github.com/...806c2a5c583ca39dd9ef1e/client/X11/xf_cliprdr.c