You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by "Michael Jumper (JIRA)" <ji...@apache.org> on 2018/07/05 18:02:00 UTC

[jira] [Comment Edited] (GUACAMOLE-587) RDP connections fail due to Guacamole protocol violation

    [ https://issues.apache.org/jira/browse/GUACAMOLE-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16533959#comment-16533959 ] 

Michael Jumper edited comment on GUACAMOLE-587 at 7/5/18 6:01 PM:
------------------------------------------------------------------

{quote}
{code:none}
...
guacd[7]: ERROR:        Guacamole protocol violation. Perhaps the version of guacamole-client is incompatible with this version of libguac?
guacd[7]: DEBUG:        Error reading "connect": Instruction parse error
...
{code}
{quote}

This error results from the {{connect}} instruction (sent to guacd during the Guacamole protocol handshake) not matching the {{args}} instruction originally sent by guacd. The Guacamole protocol requires that values for all arguments be provided, even if blank:

http://guacamole.apache.org/doc/gug/guacamole-protocol.html#guacamole-protocol-handshake

This is independent of the merge of client-side changes for GUACAMOLE-445, which only affect the user interface. The Guacamole protocol itself already provides sufficient information via the {{args}} instruction for the client side to respond with a correct {{connect}} instruction, and {{ConfiguredGuacamoleSocket}} takes this into account.


was (Author: mike.jumper):
{quote}
{code:none}
...
guacd[7]: ERROR:        Guacamole protocol violation. Perhaps the version of guacamole-client is incompatible with this version of libguac?
guacd[7]: DEBUG:        Error reading "connect": Instruction parse error
...
{code}

This error results from the {{connect}} instruction (sent to guacd during the Guacamole protocol handshake) not matching the {{args}} instruction originally sent by guacd. The Guacamole protocol requires that values for all arguments be provided, even if blank:

http://guacamole.apache.org/doc/gug/guacamole-protocol.html#guacamole-protocol-handshake

This is independent of the merge of client-side changes for GUACAMOLE-445, which only affect the user interface. The Guacamole protocol itself already provides sufficient information via the {{args}} instruction for the client side to respond with a correct {{connect}} instruction, and {{ConfiguredGuacamoleSocket}} takes this into account.

> RDP connections fail due to Guacamole protocol violation
> --------------------------------------------------------
>
>                 Key: GUACAMOLE-587
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-587
>             Project: Guacamole
>          Issue Type: Bug
>          Components: libguac
>    Affects Versions: 1.0.0
>            Reporter: Marc
>            Priority: Blocker
>             Fix For: 1.0.0
>
>
> The implementation of the Guacamole protocol within libguac enforces a limit on the number of elements a instruction may contain to ensure instruction space cannot be exhausted without bound by a malicious client. This limit is [currently set at 64|https://github.com/apache/guacamole-server/blob/35237a4f88134c7a581ca28181c5bbbbea3d54ea/src/libguac/guacamole/parser-constants.h#L39-L42]:
> {code:none}
> /**
>  * The maximum number of elements per instruction, including the opcode.
>  */
> #define GUAC_INSTRUCTION_MAX_ELEMENTS 64
> {code}
> As GUACAMOLE-445 added a 64th parameter to RDP, this means the client cannot send its {{connect}} response to the initial {{args}} instruction during the [Guacamole protocol handshake|http://guacamole.apache.org/doc/gug/guacamole-protocol.html#guacamole-protocol-handshake] without exceeding this limit, and connections cannot be established:
> {code:none}
> ...
> guacd[7]: ERROR:        Guacamole protocol violation. Perhaps the version of guacamole-client is incompatible with this version of libguac?
> guacd[7]: DEBUG:        Error reading "connect": Instruction parse error
> ...
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)