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

Reply via email to