Download Latest Version 3.32.1 source code.zip (13.1 MB) Google Add to Preferred Sources
Home / 3.31.0
Name Modified Size InfoDownloads / Week
Parent folder
freerdp-3.31.0.zip.asc 2026-08-26 228 Bytes
freerdp-3.31.0.zip.sha256 2026-08-26 85 Bytes
freerdp-3.31.0.zip 2026-08-26 13.0 MB
freerdp-3.31.0.tar.gz.asc 2026-08-26 228 Bytes
freerdp-3.31.0.tar.gz.sha256 2026-08-26 88 Bytes
freerdp-3.31.0.tar.gz 2026-08-26 11.1 MB
3.31.0 source code.tar.gz 2026-08-26 11.1 MB
3.31.0 source code.zip 2026-08-26 12.9 MB
README.md 2026-08-26 10.2 kB
Totals: 9 Items   48.1 MB 1

FreeRDP version 3.31.0 is released:

As usual, the archive can be downloaded from:

https://pub.freerdp.com/releases/

Huge bugfix and security release.

We've received quite a number of smaller and bigger bugfixes and security reports that have been addressed with this release. Most important user facing change is a optimization of the YUV decoder which will result in faster client graphics for AVC/H264 sessions

IMPORTANT: Distributors, please update ASAP, there are severe issues being addressed with this release

CVE

What's Changed

  • Warnings removed (#13076)
  • [codec,h264] support more hardware decoders (#13078)
  • [crypto] gracefully handle failed BIO/SSL creation error (#13080)
  • Ntlm custom (#13079)
  • Sspi tests (#13082)
  • [winpr,sspi] unify NTLM memory handling (#13085)
  • [codec,yuv] bound avc444v2 chroma combine to decoded frame width (#13084)
  • [client,common] use configured AAD authority for sso-mib (#13088)
  • [channels,rail] fix server side channel tracker (#13087)
  • Session info (#13089)
  • [winpr,ntlm] limit data copy to smaller entity (#13090)
  • [core,message] clone notify icon state order for async update (#13092)
  • [mf, mediacodec] fix h264 typo (#13101)
  • Fix for [#13102] (#13108)
  • [client,android] send clipboard format list response (#13104)
  • [gdi] bound hatched brush pattern index in gdi_patblt (#13111)
  • [winpr,ntlm] require 16 byte signature buffer before access (#13119)
  • [client,sdl] stop drawing when update queue is empty, fixes high CPU (#13121)
  • cmake: add C++ filesystem detection module (#13124)
  • [winpr] add OpenBSD support for thread ID (#13154)
  • winpr: fix missing FreeLibrary/GetProcAddress declarations on Cygwin (#13138)
  • winpr: fix Cygwin GetModuleHandleW/TlsAlloc collisions under static linking (#13140)
  • collected bug fixes (#13160)
  • [core,server] parse drdynvc PDU through a substream (#13162)
  • [client,common] fix audio-mode documentation (#13161)
  • [client,android] replace deprecated KeyboardView (#13145)
  • [urbdrc] Fix TRANSFER_OUT completion framing (#13129)
  • [client,x11] abort if invalid monitor index was supplied. (#13163)
  • [codec,dsp] reset buffered samples on close (#13165)
  • Avc444 chroma (#13164)
  • [core,nla] report early user auth denial as ACCESS_DENIED (#13166)
  • [server,proxy] free peer while peer_list locked (#13159)
  • Hotplug (#13167)
  • uwac: don't try to use O_TMPFILE on OpenBSD (#13172)
  • [winpr,string] fix building on OpenBSD (#13171)
  • [channels,urbdrc] report the real IOCONTROL_COMPLETION output size (#13170)
  • [codec,openh264] handle nonzero result codes (#13177)
  • [codec,h264] fix offset region change detection (#13176)
  • [winpr,sspi] fix server-side SPNEGO mechanism fallback (#13169)
  • [cmake] build fixes for OpenBSD (#13173)
  • [winpr,sysinfo] use CLOCK_MONOTONIC as a fallback (#13178)
  • [channels,rdpdr] fix missing NULL check (#13180)
  • [libfreerdp,crypto] add compilation opt-in TLS AEAD data limit with RFC 8446 threshold (#13152)
  • [winpr,sysinfo] use sysctlbyname for OSX and iOS (#13179)
  • [settings] allow null arg in freerdp_addin_argv_new (#13117)
  • [client,common] url decode file paths (#13182)
  • [codec,yuv] make tile size compile time configurable (#13181)
  • [cache,pointer] cleanup and more logging (#13183)
  • [winpr,sspi] dispatch by package index instead of a mixed-width name (#13136)
  • Fix RAIL maximize normalization on Cinnamon (#13147)
  • [core,gateway] bound tsg authorize tunnel response to received length (#13186)
  • [channels,rdpdr] don't free() mntbuf in handle_platform_mounts_bsd() (#13187)
  • [winpr,sysinfo] use sysconf _SC_NPROCESSORS_ONLN on *BSD (#13174)
  • [core,nego] report why security negotiation failed (#13185)
  • uwac: only use O_TMPFILE if it exists (#13191)
  • [cmake] fix Sndio bits and not limit support to just OpenBSD (#13188)
  • [winpr,cmake] fixes for epollshim headers / function detection (#13190)
  • [channels,rdpsnd] fix sndio compile warnings (#13193)
  • [warnings] remove unused functions and variables (#13184)
  • [cache,glyph] clean up code, relax order checks (#13194)
  • uwac: disable the SHM_ANON support on DragonFlyBSD (#13195)
  • [libfreerdp] fix detection of FFmpeg (#13197)
  • Cache recreate on deacviate/reactivate, stream checks (#13196)
  • [channels,smartcard] prevent duplicate cleanup (#13198)
  • [channel,urbdrc] check func_get_ep_desc for validity (#13199)
  • [cache,pointer] reset pointer before cache free (#13200)
  • [cmake,epollshim] use PkgConfig::EPOLLSHIM target (#13203)
  • [client,sdl] fix scaled drawing (#13205)
  • [cmake] link explicitly PUBLIC/PRIVATE/INTERFACE (#13206)
  • [client,core] add gcc validity checks (#13207)
  • [crypto,x509] relax object_string checks (#13209)
  • More Checks... (#13212)
  • [codec,av1] use dav1d for AV1 decoding (#13211)
  • [scard,pack] fix NDR pointer validation for empty card handles (#13208)
  • Pkg config imported (#13213)
  • [utils,test] fix generated test data (#13214)
  • [channels,rail] fix NULL deref race on server channel start (#13216)
  • [channels,cliprdr] fix long format list parse (#13217)
  • [scard,pack] remove incorrect stream length checks in unpack functions (#13215)
  • [client,x11] clear errno before keyboard pipe read (#13220)
  • Fix use-after-free of the printer driver singleton (#13221)
  • [codec,yuv] fix pool_decode_rect loop variable reuse (#13223)
  • [channels,cliprdr] fix server-side format-list negotiation bugs (#13225)
  • fix use-after-free when winpr_aligned_recalloc fails (#13224)
  • [channel,urbdrc] add missing check (#13228)
  • [utils,rdpdr] force 64bit arithmetic in rdpdr_dump_packet (#13229)
  • Sdl image clipboard (#13230)
  • [codec,fdk] revert AACENC_GRANULE_LENGTH, (#13231)
  • [winpr,sspi] add custom extensions (#13222)
  • Sspi cleanup (#13233)
  • Canonicalize paths (#13175)
  • Timeout (#13234)
  • Rail workarea updates (#13238)
  • OSS-Fuzz: Disable SNDIO manually for oss-fuzz build (#13240)
  • Dos xattr (#13239)
  • Test fuzz server (#13241)
  • [winpr,cmake] guard CheckSourceCompiles (#13242)
  • [core] fix memory leak in TestFuzzServerSeedGen (#13245)
  • [core,connection] abort after PROTOCOL_FAILED_NEGO (#13250)
  • Safe zero (#13248)
  • [gdi] document cache requirement for gdi_init (#13249)
  • [core,server] lock dynamic channel list while parsing (#13251)
  • [cmake,yuv] fix detection without pkg-config (#13252)
  • [client,x11] fix /gdi:hw surface creation (#13255)
  • winpr/sspi/negotiate: NULL check sub credentials accepting context (#13254)
  • [utils,scard] validate ReaderState_Return on use (#13256)
  • Fuzzer improvements (#13257)
  • [winpr] implement inheritable handles in CreateProcess (#13246)
  • Warning fixes (#13258)
  • [doxygen] add missing @since version tags (#13259)
  • Cross fixes (#13260)
  • [winpr,path] fix mingw builds, link lowercase names (#13261)
  • Relax check in window_state_order_clone (#13263)
  • [core,test] ignore SIGPIPE in TestFuzzServerSeedGen (#13265)
  • Fix utf-8 encoding of LS and PS in winpr_str_has_newlines (#13262)
  • Cross mingw fixes (#13264)
  • [build,mingw] fix missing includes (#13268)
  • [build,mingw] replace C++11 constructs (#13269)
  • [client,x11] fix cliprdr infinite request loop (#13266)
  • [winpr] fix TestThreadCreateProcess (#13273)
  • Release cleanups (#13270, [#13272], [#13274], [#13277])

New Contributors

  • @cordlandwehr made their first contribution in (#13080)
  • @berylraven made their first contribution in (#13088)
  • @tearfulDalvik made their first contribution in (#13101)
  • @cizra made their first contribution in (#13121)
  • @a5ehren made their first contribution in (#13124)
  • @brad0 made their first contribution in (#13154)
  • @robertschulze made their first contribution in (#13138)
  • @uchouT made their first contribution in (#13129)
  • @zx1991 made their first contribution in (#13177)
  • @mjpowersjr made their first contribution in (#13169)
  • @jclairembault made their first contribution in (#13152)
  • @hamed7ir made their first contribution in (#13136)
  • @Eneratos made their first contribution in (#13147)
  • @ElCruncharino made their first contribution in (#13211)
  • @maordadush made their first contribution in (#13216)
  • @gornkv made their first contribution in (#13220)
  • @eunho87 made their first contribution in (#13221)
  • @jasonmli8 made their first contribution in (#13263)

For a complete and detailed change log since the last release run: git log 3.31.0...3.30.0

Source: README.md, updated 2026-08-26