FWD: Truncated non-interactive sessions

Matt Johnston matt at ucc.asn.au
Wed Aug 24 19:36:45 WST 2005


Hm, I can reproduce it here - I'll try and track down what's
going on.

Thanks,
Matt

On Wed, Aug 24, 2005 at 12:42:26PM +0200, sys-soft at ida.ing.tu-bs.de wrote:
> 
> I'm resending the following posting without attachments - as it didn't 
> reach the mailing lists until now.
> 
> ---------- Forwarded message ----------
> From: sys-soft at ida.ing.tu-bs.de
> To: dropbear at ucc.asn.au
> Date: Tue, 2 Aug 2005 12:33:31 +0200 (CEST)
> Subject: Truncated non-interactive sessions
> 
> 
> following problem:
> 
> have two computers here - one running dropbear compiled with uclibc and a 
> stock suse 9.2/9.3 & 9.0. when transferring files a la:
> 
> cat /etc/motd | ssh root at server "cat - > /etc/motd"
> 
> they occasionally get truncated by the dropbear server. please don't focus 
> on the method to transfer files - it's just a testcase for this bug.
> with the default RECV_MAXWINDOW 8000 (see channel.h) files between 8000 
> and 12096 are affected (8000+4096=12096). To be more specific the problem 
> occurs with files n*8000+i where 0 < i <= 4096. With the probability 
> decreasing with increasing i.
> 
> 
> The problem is that dropbear fails to flush the writebuffer before sending
> the a received EOF.
> 
> transcript of a sample session:
> 
> #~> dd if=/dev/zero bs=1 count=4321 | ssh root at server "wc"
> 0 0 4321
> 
> #~> dd if=/dev/zero bs=1 count=8000 | ssh root at server "wc"
> 0 0 8000
> 
> #~> dd if=/dev/zero bs=1 count=8090 | ssh root at server "wc"
> 0 0 8000
>       ~~ <- truncated 90 bytes
> 
> #~> dd if=/dev/zero bs=1 count=8090 | ssh root at server "wc"
> 0 0 8090
>       ~~ <- occassionally correct... not deterministic
> 
> #~> dd if=/dev/zero bs=1 count=12095 | ssh root at server "wc"
> 0 0 8000
> 
> #~> dd if=/dev/zero bs=1 count=12097 | ssh root at server "wc"
> 0 0 12097
> 
> 
> I appended four tracefiles of failed and successful dropbear sessions. 
> Dropbear was compiled with RECV_MAXWINDOW 10000 and RECV_MAXPACKET 8000 
> for this test. Affected files had a size between 10000 and 14095 as well 
> as 20000-23090 (couldn't reproduce with higher values).
> 
> In all four traced sessions a 12k file was transferred. In two cases only 
> 10k were transferred.
> 
> The problem was also reproducible with dropbear compiled on a suse 9.2 
> with glibc.
> 
> Best Regards
> 
> 	Matt


More information about the Dropbear mailing list