[ 
https://issues.apache.org/jira/browse/SSHD-800?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Fulvio Cavarretta updated SSHD-800:
-----------------------------------
    Description: 
Hi in case the SSHD server receives a message for a not existing channel, it 
sends back a _SSH_MSG_CHANNEL_FAILURE_.

This behaviour is not described in RFC4254, which, I agree, is unclear about 
what should be do in this case.

Since the current SSHD implementation send back a _SSH_MSG_CHANNEL_FAILURE_ 
message (with the local channel id), in our environment, it put the receipient 
in an inconsistent state. 

In out enviroment happened that the receipient has sent a 
_SSH_MSG_CHANNEL_DATA_ while SSHD had already closed the channel.

I fully agree that this should not happen (I will open another issue about 
this) but the _SSH_MSG_CHANNEL_FAILURE_ further complicates things.

 

The problem can be overcome modifying line 78 of 
_org.apache.sshd.common.session.helpers.DefaultUnknownChannelReferenceHandler_

 

letting
{code:java}
case SshConstants.SSH_MSG_CHANNEL_EXTENDED_DATA:
// Not sure if entirely compliant with RFC4254, but try to stem the flood       
wantReply = false;
break;

default: // do nothing{code}
 

instead of

 
{code:java}
case SshConstants.SSH_MSG_CHANNEL_EXTENDED_DATA:
// Not sure if entirely compliant with RFC4254, but try to stem the flood       
wantReply = true;
break;

default: // do nothing{code}

  was:
Hi in case the SSHD server receives a message for a not existing channel, it 
sends back a _SSH_MSG_CHANNEL_FAILURE_.

This behaviour is not described in RFC4254, which, I agree, is unclear about 
what should be do in this case.

Since the current SSHD implementation send back a _SSH_MSG_CHANNEL_FAILURE_ 
message (with the local channel id), in our environment, it put the receipient 
in an inconsistent state. 



In out enviroment happened that the receipient has sent a 
_SSH_MSG_CHANNEL_DATA_ while SSHD had already closed the channel.

I fully agree that this should not happen (I will open another issue about 
this) but the _SSH_MSG_CHANNEL_FAILURE_ further complicates things.


> SSHD port forwarding. Wrong SSH_MSG_CHANNEL_FAILURE
> ---------------------------------------------------
>
>                 Key: SSHD-800
>                 URL: https://issues.apache.org/jira/browse/SSHD-800
>             Project: MINA SSHD
>          Issue Type: Bug
>    Affects Versions: 1.7.0
>            Reporter: Fulvio Cavarretta
>            Priority: Critical
>
> Hi in case the SSHD server receives a message for a not existing channel, it 
> sends back a _SSH_MSG_CHANNEL_FAILURE_.
> This behaviour is not described in RFC4254, which, I agree, is unclear about 
> what should be do in this case.
> Since the current SSHD implementation send back a _SSH_MSG_CHANNEL_FAILURE_ 
> message (with the local channel id), in our environment, it put the 
> receipient in an inconsistent state. 
> In out enviroment happened that the receipient has sent a 
> _SSH_MSG_CHANNEL_DATA_ while SSHD had already closed the channel.
> I fully agree that this should not happen (I will open another issue about 
> this) but the _SSH_MSG_CHANNEL_FAILURE_ further complicates things.
>  
> The problem can be overcome modifying line 78 of 
> _org.apache.sshd.common.session.helpers.DefaultUnknownChannelReferenceHandler_
>  
> letting
> {code:java}
> case SshConstants.SSH_MSG_CHANNEL_EXTENDED_DATA:
> // Not sure if entirely compliant with RFC4254, but try to stem the flood     
> wantReply = false;
> break;
> default: // do nothing{code}
>  
> instead of
>  
> {code:java}
> case SshConstants.SSH_MSG_CHANNEL_EXTENDED_DATA:
> // Not sure if entirely compliant with RFC4254, but try to stem the flood     
> wantReply = true;
> break;
> default: // do nothing{code}



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

Reply via email to