Skip to content

Commit adad097

Browse files
fix(devolutions-gateway): ConnectionRequest PDU protocol field: set PROTOCOL_SSL;
1 parent 8b50a24 commit adad097

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

devolutions-gateway/src/rdp_proxy.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -259,10 +259,10 @@ where
259259
// > Credential Security Support Provider protocol (CredSSP) (section 5.4.5.2).
260260
// > If this flag is set, then the PROTOCOL_SSL (0x00000001) flag SHOULD also be set
261261
// > because Transport Layer Security (TLS) is a subset of CredSSP.
262-
// However, crucially, it’s not strictly required (not "MUST").
263-
// In fact, we purposefully choose to not set `PROTOCOL_SSL` unless `enable_winlogon` is `true`.
264-
// This tells the server that we are not going to accept downgrading NLA to TLS security.
265-
protocol: nego::SecurityProtocol::HYBRID | nego::SecurityProtocol::HYBRID_EX,
262+
// Crucially, it’s not strictly required (not "MUST"). However, in practice, we cannot set PROTOCOL_HYBRID without PROTOCOL_SSL.
263+
// Otherwise, the `mstsc.exe` will fail right after the CredSSP phase with the "An authentication error has occurred (0x609)" error.
264+
// A similar case: https://serverfault.com/a/720161.
265+
protocol: nego::SecurityProtocol::SSL | nego::SecurityProtocol::HYBRID | nego::SecurityProtocol::HYBRID_EX,
266266
};
267267
trace!(?connection_request_to_send, "Send Connection Request PDU to server");
268268
send_pdu(server_framed, &x224::X224(connection_request_to_send))

0 commit comments

Comments
 (0)