Xrdp w wersjach do 0.10.5 włącznie nie weryfikuje podpisu MAC (Message Authentication Code) zaszyfrowanych pakietów RDP przy użyciu warstwy "Classic RDP Security". Nieuwierzytelniony atakujący posiadający możliwość przeprowadzenia ataku MITM może niezauważalnie modyfikować szyfrowany ruch sieciowy.
▸ Pokaż oryginał (EN)
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.
Podatność wynika z niekompletnej implementacji mechanizmu kontroli integralności (CWE-354): strona nadająca poprawnie generuje 8-bajtowy podpis integralności, jednak strona odbierająca nie zawiera logiki weryfikującej ten podpis — jest on po cichu ignorowany. Atakujący ulokowany pomiędzy klientem a serwerem (MITM) może zatem dowolnie modyfikować zaszyfrowane pakiety RDP w trakcie transmisji, bez ryzyka wykrycia przez serwer. Podatność nie dotyczy połączeń, w których wymuszona jest warstwa bezpieczeństwa TLS.
Atakujący z pozycji MITM może manipulować ruchem RDP w sposób niezauważony dla serwera, co może prowadzić do naruszenia integralności sesji użytkownika oraz potencjalnego przejęcia kontroli nad połączeniem. Poufność przesyłanych danych nie jest bezpośrednio zagrożona, jednak integralność transmisji — zarówno po stronie klienta, jak i strony trzeciej — jest poważnie naruszona.
Należy zaktualizować Xrdp do wersji 0.10.6, w której problem został naprawiony. Jeśli natychmiastowa aktualizacja nie jest możliwa, jako obejście należy w pliku konfiguracyjnym xrdp.ini wymusić użycie warstwy TLS (parametr: security_layer=tls), co zapewni integralność połączeń end-to-end.
Neutrinolabs Xrdp w wersjach od 0.10.5 i wcześniejszych, korzystających z warstwy bezpieczeństwa "Classic RDP Security". Połączenia korzystające z warstwy TLS nie są podatne.
Poprawka dostępna w wersji 0.10.6. Producent opublikował advisory pod adresem: https://github.com/neutrinolabs/xrdp/security/advisories/GHSA-j2jm-c596-c5q3
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
Powiązane podatności
Nieuwierzytelniony stack-based buffer overflow w xrdp (RCE)
xrdp is an open source project which provides a graphical login to remote machines using Microsoft Remote Desk...
xrdp is an open source project which provides a graphical login to remote machines using Microsoft Remote Desk...
xrdp is an open source project which provides a graphical login to remote machines using Microsoft Remote Desk...
xrdp is an open source project which provides a graphical login to remote machines using Microsoft Remote Desk...