3.25.0 release
FreeRDP 3.25.0 has just been released and uploaded to
https://pub.freerdp.com/releases/
Bugfix and feature release.
- Experimental AV1 support has been added. This currently works only with FreeRDP based servers.
- Most notably there is now support for [MS-RDPEWA] (FIDO2 redirection)
- Android client received a (small) facelift
- Improved SDL3 client drawing performance
- Console output support for SDL3 (windows) and windows native client
- RDP proxy now supports NSCodec and RFX modes.
- RDP PRoxy now has smartcard emulation and SAM file support (via config file)
- Smartcard KSP support for NLA authentication
CVE fixes
- CVE-2026-40254
What’s Changed
- [winpr,wlog] add WLog_SetGlobalPrefix (#12497)
- [channels,video] fix wrong cast (#12511)
- [codec,openh264] reject encoder ABI mismatch on runtime-loaded library (#12510)
- [client,sdl] create a copy of rdpPointer (#12512)
- [codec,video] properly pass intermediate format (#12518)
- [utils, signal] lazily initialize Windows CRITICAL_SECTION to match POSIX static mutex behavior (#12520)
- winpr: improve libunwind backtraces (#12530)
- [server,shadow] remember selected caps (#12528)
- Zero credential data before free in NLA and NTLM context (#12532)
- [server,proxy] ignore missing client in input channel (#12536)
- [server,proxy] ignore rdpdr messages (#12537)
- [winpr,sspi] improve kerberos logging (#12538)
- Codec fixes (#12542)
- [winpr,sspi] Fix context nullptr handling (#12543)
- Dev 3.24.3 dev0 (#12545)
- Fix memory leak in
gdi_create_bitmap()ongdi_CreateBitmapfailure (libfreerdp/gdi/graphics.c) (#12547) - Fix memory leak in
vgids_read_do_fkt()onStream_Newfailure (libfreerdp/emu/scard/smartcard_virtual_gids.c) (#12548) - Proxy config improve (#12549)
- Proxy config improve (#12550)
- [client,sdl] clamp cursor hotspot (#12553)
- RFC: Research/av1 codec extension (#12527)
- [winpr,kerberos] fix krb_log_context_encryption (#12555)
- [client,sdl] fix global init return check (#12558)
- Fix remote credential with windows11h2 (#12560)
- Proxy scard auth improvements (#12561)
- [winpr,sspi] guard krb5_get_etype_info (#12562)
- [utils,smartcard] fix STATUS_BUFFER_TOO_SMALL (#12564)
- [client,common] do not manipulate security settings for smartcard-logon (#12567)
- [channels,audin] fix regression for microphone (#12570)
- [client,sdl] add SDL_KMOD_MODE and SDL_KMOD_LEVEL5 (#12569)
- Fix unbound strlen on slotDescription (#12571)
- build: Update FindFFmpeg.cmake to support Apple frameworks with ‘lib’ prefix (#12565)
- [channels,rdpewa] add WebAuthn virtual channel support (#12572)
- [core] fix freerdp_get_nla_sspi_error always returning 0 on client (#12574)
- [ci] enable rdpewa channel (#12576)
- small refactoring (#12578)
- Rdpewa unify notifications (#12581)
- [client,sdl] fix crash when clicking ‘cancel’ on PIN popup (#12580)
- [channels,drive] refine bounds checks (#12584)
- fix: smartcard logon with ECC keys and minidriver-assigned container names (#12585)
- Various papercuts (#12583)
- fix: console output on Windows client (#12573)
- [winpr,crt] dump stack on aligned memory errors (#12588)
- [client,x11] keep scancode input for Ctrl/Alt/Super combinations in /kbd:unicode mode (#12590)
- [codec,progressive] fix underflow guard in progressive_rfx_quant_sub (#12592)
- fix: wfreerdp floatbar visibility (#12594)
- [winpr,json] return a copy from WINPR_JSON_Print* (#12595)
- [client,sdl] drop WITH_DEBUG_SDL_EVENTS (#12599)
- Ncrypt and asn1 cleanup (#12604)
- Video channel fix (#12593)
- [codec,h264] fix media foundation backend (#12606)
- fix(sdl): detect Hyprland and river in tryFallback() (#12608)
- Proxy stress fixes (#12597)
- Add new fuzzer tests (#12613)
- fix(sdl): use SDL_Renderer instead of software surfaces (#12607)
- fix(sdl): BFS neighbor walk pop/begin mismatch in addOrUpdateDisplay (#12614)
- fix(sdl): promote first monitor as primary when subset excludes primary (#12618)
- [ci,android] default to only aarch64 (#12622)
- Fix process exit code on non-pidfd platforms (macOS, BSD)#12534) (#12586)
- warning cleanups (#12626)
- fix: prevent PostQuitMessage in RemoteApp WM_DESTROY handler (#12629)
- [winpr,ntlm] fix message cleanup across the SSPI lifecycle (#12609)
- Code bug fixes (#12632)
- Oss fixes (#12633)
- [client,android] add an option to enable keeping screen on when connected (#12630)
- [client, android] Fix layout overlaps, migrate to AndroidX, and update UI components (#12628)
- Proxy config tests (#12636)
- Proxy config optional targethost (#12637)
- [client,sdl] set SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME (#12639)
- Nightly deb fix (#12640, #12641, #12649, #12650, #12642, #12643)
- [winpr,input] fix korean keyboard mapping (#12646)
- [client,sdl] set hints before SDL_Init (#12644)
- Sdl inhibit option (#12647)
- [client,X11] fix residual race in xf_clipboard_formats_free (#12648)
- (sdl3): Fix oversized window on HiDPI Wayland (#12635)
- [cache,bitmap] fix off-by-one in bitmap_cache_put bounds check (#12651)
- [winpr,sspi] free fields buffer immediately (#12654)
- [codec,dsp] fix fencepost error in dsp_ima_clamp_step (#12655)
New Contributors
- @Kotivskyi made their first contribution in (#12532)
- @Skinner927 made their first contribution in (#12571)
- @bluca made their first contribution in (#12572)
- @sitiom made their first contribution in (#12573)
- @mtixt made their first contribution in (#12590)
- @MrVampy made their first contribution in (#12608)
- @ZackaryShen made their first contribution in (#12629)
- @parasol-aser made their first contribution in (#12609)
- @svncibrahim made their first contribution in (#12628)
Full Changelog: https://github.com/FreeRDP/FreeRDP/compare/3.24.2…3.25.0