Description
FreeRDP before 3.29.0 contains a reachable assertion (WINPR_ASSERT(OutputBufferLength == BytesReturned)) in serial_process_irp_device_control() in channels/serial/client/serial_main.c. When serial device redirection is enabled and a server-controlled IRP_MJ_DEVICE_CONTROL request specifies an unsupported IOCTL with a non-zero OutputBufferLength, CommDeviceIoControl() can fail with BytesReturned = 0, causing the mismatch to trigger the assertion and abort the client process (denial of service).
Metrics
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:LWeakness enumeration
Affected software
| Vendor | Product | Versions |
|---|---|---|
| FreeRDP | FreeRDP | < 3.29.0 |
References
- https://github.com/FreeRDP/FreeRDP/commit/1cc783d4c78bd2f66d3a8582dfe70a663d141444Patch
- https://github.com/FreeRDP/FreeRDP/commit/5370fb26fbf034ecd11d3026b6ad639b5fff493fPatch
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-pfxq-3qmw-8vjxMitigation, Vendor Advisory
- https://www.vulncheck.com/advisories/freerdp-before-denial-of-service-via-serial-devicecontrolPatch, Third Party Advisory
Timeline
- Published
- Aug 1, 2026
- Last modified
- Sep 29, 2026
- NVD status
- Analyzed