xrdp is an open source RDP server. In versions through 0.10.5, xrdp does not implement verification for the Message Authentication Code (MAC) signature of encrypted RDP packets when using the "Classic RDP Security" layer. While the sender correctly generates signatures, the receiving logic lacks the necessary implementation to validate the 8-byte integrity signature, causing it to be silently ignored. An unauthenticated attacker with man-in-the-middle (MITM) capabilities can exploit this missing check to modify encrypted traffic in transit without detection. It does not affect connections where the TLS security layer is enforced. This issue has been fixed in version 0.10.6. If users are unable to immediately upgrade, they should configure xrdp.ini to enforce TLS security (security_layer=tls) to ensure end-to-end integrity.
The vulnerability results from incomplete implementation of the integrity control mechanism (CWE-354): the sending side correctly generates an 8-byte integrity signature, however the receiving side lacks logic to verify this signature — it is silently ignored. An attacker positioned between the client and server (MITM) can therefore arbitrarily modify encrypted RDP packets during transmission, without risk of detection by the server. The vulnerability does not affect connections where the TLS security layer is enforced.
An attacker in a MITM position can manipulate RDP traffic in a manner undetected by the server, which may lead to compromise of session integrity and potential takeover of the connection. Confidentiality of transmitted data is not directly threatened, however the integrity of transmission — both on the client side and third-party side — is seriously compromised.
Xrdp should be updated to version 0.10.6, where the issue has been fixed. If immediate update is not possible, as a workaround, the TLS layer should be enforced in the xrdp.ini configuration file (parameter: security_layer=tls), which will ensure end-to-end connection integrity.
Neutrinolabs Xrdp in versions 0.10.5 and earlier, using the 'Classic RDP Security' security layer. Connections using the TLS layer are not vulnerable.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:L/SC:H/SI:H/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XNeutrinolabs Xrdp
APPNeutrinolabs< 0.10.6
Related vulnerabilities
xrdp: heap buffer overflow w trybie vnc-any umożliwiający RCE przed uwierzytelnieniem
Nieuwierzytelniony stack-based buffer overflow w xrdp (RCE)
Out of Bound Write w xrdp — zapis poza granicami bufora przez RDP
Buffer overflow w xrdp — funkcja audin_send_open()
Buffer overflow w xrdp – funkcja xrdp_mm_chan_data_in()