Messages in this thread | | | Date | Thu, 08 Nov 2007 22:20:03 +0100 | From | Przemyslaw Wegrzyn <> | Subject | Buffer overflow in CIFS VFS. |
| |
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
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |