On Fri, Aug 02, 2024 at 02:41:18PM +0000, Dane Bouchie wrote:
> The client chooses the security type, so they can pass in "None" to the
> switch statement. is_allowed_security_type() now prevents that.
Oh, so was the issue a trivial authentication bypass? Evidently, logic
errors like this are easy to miss in plain sight.
switch (type) {
case RFB_SECURITY_TYPE_NONE:
security_handshake_ok(client, NULL);
client->state = VNC_CLIENT_STATE_WAITING_FOR_INIT;
break;
Should the above RFB_SECURITY_TYPE_NONE support continue to exist in the
code at all, if RFB_SECURITY_TYPE_NONE is never added to the allowed
security types array that the code now pre-checks against? Maybe it
should be #if 0'ed out, leaving it only as an example for debugging?
Thank you for the extremely prompt response.
Alexander