Fix for CVE-2007-5398.
authorGerald (Jerry) Carter <jerry@samba.org>
Thu, 15 Nov 2007 02:51:14 +0000 (20:51 -0600)
committerGerald (Jerry) Carter <jerry@samba.org>
Thu, 15 Nov 2007 16:57:31 +0000 (10:57 -0600)
== Subject:     Remote code execution in Samba's WINS
==              server daemon (nmbd) when processing name
==              registration followed name query requests.
==
== CVE ID#:     CVE-2007-5398
==
== Versions:    Samba 3.0.0 - 3.0.26a (inclusive)
...
Secunia Research reported a vulnerability that allows for
the execution of arbitrary code in nmbd.  This defect may
only be exploited when the "wins support" parameter has
been enabled in smb.conf.

source/nmbd/nmbd_packets.c

index d49c8bab799318ed28f316a19ada9ae111ccdb9e..b78ab5ba7eb710f734c57d04253dc088a24c400e 100644 (file)
@@ -970,6 +970,12 @@ for id %hu\n", packet_type, nmb_namestr(&orig_nmb->question.question_name),
        nmb->answers->ttl      = ttl;
 
        if (data && len) {
+               if (len < 0 || len > sizeof(nmb->answers->rdata)) {
+                       DEBUG(5,("reply_netbios_packet: "
+                               "invalid packet len (%d)\n",
+                               len ));
+                       return;
+               }
                nmb->answers->rdlength = len;
                memcpy(nmb->answers->rdata, data, len);
        }