[ 
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)

Reply via email to