FreeRDP: contains_dotdot() off-by-one allows drive channel path traversal via terminal ..
Summary
FreeRDP: contains_dotdot() off-by-one allows drive channel path traversal via terminal ..
Original description
The description as published by the source.
FreeRDP is a free implementation of the Remote Desktop Protocol. Versions prior to 3.25.0 have an off-by-one in the path traversal filter in channels/drive/client/drive_file.c. The contains_dotdot() function catches ../ and ..\ mid-path but misses .. when it's the last component with no trailing separator. A rogue RDP server can read, list, or write files one directory above the client's shared folder through RDPDR requests. This requires the victim to connect with drive redirection enabled. Version 3.25.0 patches the issue.
Source: OSV.dev (Open Source Vulnerabilities) NVD GitHub Advisory OSV
Fix status by distribution
Fixed packages published by each distribution for this CVE
- Debian DEBIAN-CVE-2026-40254 freerdp2
- Ubuntu UBUNTU-CVE-2026-40254 freerdp
References
- advisory github.com
- advisory github.com
- advisory nvd.nist.gov