Buffer overflow in CIFS VFS.

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Przemyslaw Wegrzyn
Date: Thursday, November 8, 2007 - 2:20 pm

Hello all,

I was looking at CIFS VFS code recently, trying to solve other issue,
just to find something that looks like a buffer overflow  bug.
The problem is in SendReceive() function in transport.c - it memcpy's
message payload into a buffer passed via out_buf param. The function
assumes that all buffers are of size (CIFSMaxBufSize +
MAX_CIFS_HDR_SIZE) , unfortunately it is also called with smaller
(MAX_CIFS_SMALL_BUFFER_SIZE) buffers.

To check this finding I patched Samba server to send oversized logoffX
messages. With ~ 16kB messages the client running 2.6.23.1 crashed upon
unmounting.

I've done a quick fix, available here:
http://czajnick.sitenet.pl/cifs-buffer-overflow-fix.patch.gz

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Buffer overflow in CIFS VFS., Przemyslaw Wegrzyn, (Thu Nov 8, 2:20 pm)
Re: Buffer overflow in CIFS VFS., Jörn, (Thu Nov 8, 3:28 pm)