Repository navigation
ldm 3.4.7-1
An empty answer is no longer taken for a credential.
The greeter remaps Tab to Enter, so two taps sent an empty username and an empty password straight through, and nothing rejected them. With no credentials to ask about, the pre-authentication reports itself unavailable rather than refused — and unavailable is not a refusal, so the session started anyway and handed the user the RDP server's own login window. Past the greeter, past the pre-authentication, and past the failure count that goes with it.
This is not a way in without a password: the RDP server still asks. What it bypassed is the check in front of it and the counting that goes with it, which is the part meant to stop someone at a client guessing indefinitely without it showing up anywhere.
get_userid()andget_passwd()ask again while the answer is empty. That is the one place every backend and every way of submitting passes through, so it does not matter whether the empty line came from Tab, from Enter, or from something else driving the greeter.- Both backends now treat an empty string as missing rather than only a null pointer, so nothing starts a session on one.
- The guest path in the ssh backend is untouched: it fills in a user name and password of its own, and they are never empty.
Reported by Marc-André Butz while testing the RDP backend with RDP_PREAUTH=ssh.