https://bugs.kde.org/show_bug.cgi?id=528364
Bug ID: 528364
Summary: KRdp does not send a logon-complete notification after
successful authentication
Classification: Plasma
Product: KRdp
Version First 6.8.2
Reported In:
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: ---
DESCRIPTION
KRdp completes authentication and establishes an RDP session without sending a
standard logon-complete notification to the client.
Some clients depend on this notification to complete their logon state
transition or trigger post-logon actions. Omitting it can therefore cause those
client behaviors to fail or remain pending even though the RDP connection is
established and the desktop is accessible. The exact effect depends on the
client implementation.
STEPS TO REPRODUCE
1. Enable KRdp and configure an account under “Other Users”.
2. Connect using an RDP client instrumented to record incoming Save Session
Info PDUs, such as the attached headless FreeRDP probe.
3. Authenticate with the correct credentials and allow the connection to
complete.
4. Check whether the server sends a logon notification of type
`INFOTYPE_LOGON`, `INFOTYPE_LOGON_LONG`, or `INFOTYPE_LOGON_PLAINNOTIFY`.
OBSERVED RESULT
Authentication and connection establishment succeed, but the client receives no
logon-complete notification. Clients that rely on this notification cannot
perform the corresponding post-logon processing as expected.
EXPECTED RESULT
KRdp should notify the client after successful logon, following the
recommendations and notification-type selection rules in MS-RDPBCGR 3.3.5.10.1,
so clients can perform their implementation-dependent post-logon processing.
SOFTWARE/OS VERSIONS
Operating System (available in the Info Center app, or by running `kinfo` in a
terminal window): Arch Linux
KDE Plasma Version: 6.8.2
KDE Frameworks Version: 6.31.0
Qt Version: 6.12.0
ADDITIONAL INFORMATION
1. [Sending Save Session Info
PDU](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/3061e2df-ae7c-41fe-8743-650a9cb70365):
recommends notifying the client after logon (`SHOULD`), specifies the logon
notification types, and describes when V1/V2 or Plain Notify should be
selected.
2. [Save Session Info PDU
Data](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/d892bc5b-aecd-4aee-99b6-5f43b5a63d75):
defines `INFOTYPE_LOGON_PLAINNOTIFY` (`0x00000002`) as notification that the
user has logged on.
3. [Plain
Notify](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/4ea7791a-5f86-4219-b396-b20c0851b09e):
defines the 576-byte padding structure used by this notification.
4. [Processing Save Session Info
PDU](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/cd5f09de-12bf-45f6-b0d1-0327d8923277):
allows implementation-dependent client actions on receiving a logon
notification. This provides the protocol basis for client-specific actions
triggered by the notification; the specification does not prescribe a single
action for all clients.
5. [FreeRDP 3.32.2,
`libfreerdp/core/info.c`](https://github.com/FreeRDP/FreeRDP/blob/3.32.2/libfreerdp/core/info.c)**:
`rdp_send_save_session_info()` encodes and sends the PDU, including the Plain
Notify variant. This is the existing implementation reused by the patch.
6. [FreeRDP Proxy,
`server/proxy/pf_update.c`](https://github.com/FreeRDP/FreeRDP/blob/3.32.2/server/proxy/pf_update.c#L275):
`pf_client_save_session_info()` actually forwards upstream notifications using
the downstream context's `SaveSessionInfo` callback.
7. [xrdp,
`libxrdp/xrdp_rdp.c`](https://github.com/neutrinolabs/xrdp/blob/devel/libxrdp/xrdp_rdp.c):
`xrdp_rdp_send_session_info()` implements transmission as
`PDUTYPE2_SAVE_SESSION_INFO`. The [NeutrinoRDP
module](https://github.com/neutrinolabs/xrdp/blob/devel/neutrinordp/xrdp-neutrinordp.c)
forwards received session information through `lfreerdp_session_info()` and
`server_session_info`. This is evidence of a forwarding path, not a claim that
every xrdp login mode originates a Plain Notify message.
--
You are receiving this mail because:
You are watching all bug changes.