Executive brief
FreeRDP is an open-source implementation of the Remote Desktop Protocol used to connect to remote computers. A flaw in how it handles camera device channels can allow a malicious server to crash the client application. This results in a denial-of-service, potentially disrupting remote work sessions and requiring the application to be restarted.
Technical details
A use-after-free vulnerability exists in FreeRDP's camera device redirection (rdpecam) component. The root cause is a race condition where the 'ecam_dev_on_close' function frees a channel callback without properly synchronizing with the asynchronous capture thread. When the capture thread subsequently attempts to send a sample response via 'ecam_dev_send_sample_response', it calls 'ecam_channel_write' using a pointer to the already freed memory. This can be triggered by a remote RDP server closing a device channel while a camera stream is active, leading to a crash (Denial of Service). The issue is fixed in version 3.22.0 by ensuring all streams are stopped before the channel is closed.
Affected products
- FreeRDP FreeRDP < 3.22.0
Timeline
- 2026-02-09: disclosed
- 2026-02-09: patched: Fixed in version 3.22.0
- 2026-02-09: advisory
References
- https://github.com/FreeRDP/FreeRDP/commit/f3ab1a16139036179d9852745fdade18fec11600
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-6gvg-29wx-6v7h
- https://access.redhat.com/errata/RHSA-2026:19033
- https://access.redhat.com/errata/RHSA-2026:3068
- https://access.redhat.com/errata/RHSA-2026:4121
- https://access.redhat.com/security/cve/CVE-2026-24678
- https://bugzilla.redhat.com/show_bug.cgi?id=2438197