Abhishek Ganguly created SSHD-269:
-------------------------------------

             Summary: Random Data corruption with Remote Port Forwarding
                 Key: SSHD-269
                 URL: https://issues.apache.org/jira/browse/SSHD-269
             Project: MINA SSHD
          Issue Type: Bug
    Affects Versions: 0.9.0
         Environment: WIN7 + JDK7, Centos+OpenJDK7
            Reporter: Abhishek Ganguly
            Priority: Critical


A TCP connection set up over Remote Port Forwarding feature randomly garbles 
the data. On further testing I found that the TCP stream from remote-to-local 
is unaffected whereas the local-to-remote is bad.

To reproduce,
1. setup a basic sshd. listen on port 22. call the host 'remote'.
2. on 'local' machine set up putty (ssh client) as follows:
2.1 Host name: remote
2.2 Port: 22
2.3 Connection-SSH: Dont start a shell or command at all
2.4 Connection-SSH-tunnels:: source-port: remote-port, destination: 
localhost:localport
2.5 Connection type: Remote [Click ADD]
2.6 Open connection

this makes a tunnel from remoteserver:remoteport to localhost:localport

3. set up a basic TCP server on localhost:localport
3.1 start serving predictable byte arrays. {0000111112222....}
4. set up a basic TCP client. connect to remoteHost:remotePort
4.1 the connection automatically gets forwarded to localhost:localport where my 
own TCP server is running. hence a TCP connection is setup over the tunnel.
5. start consuming the byte array from server.
5.1 match the incoming bytes to expected sequence.

you will see that the sequence is oftentimes garbled.

6. let the client send a similar predictable byte stream to server.
6.1 from client take OutputStream from the socket and push a long but 
predictable byte array in it.
6.2 from server get InputStream out of socket and read the bytes

you will see that irrespective of array length, all the bytes are safely 
delivered.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to