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 its the last component with no trailing separator. A rogue RDP server can read, list, or write files one directory above the clients shared folder through RDPDR requests. This requires the victim to connect with drive redirection enabled. Version 3.25.0 patches the issue.
A product calculates or uses an incorrect maximum or minimum value that is 1 more, or 1 less, than the correct value.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Freerdp | Freerdp | * | 3.25.0 (excluding) |
| Freerdp | Ubuntu | esm-infra/xenial | * |
| Freerdp3 | Ubuntu | noble | * |
| Freerdp3 | Ubuntu | questing | * |
| Freerdp3 | Ubuntu | resolute | * |
| Freerdp3 | Ubuntu | upstream | * |