diff options
author | Jeremy Allison <jra@samba.org> | 2010-09-09 15:43:07 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2010-09-09 15:43:07 +0200 |
commit | df1c76e2275068d1006e82a4a21d42b58175268b (patch) | |
tree | 218774cfa0a2f889837c6c0c2e306266784c4209 /source/lib | |
parent | da9325d02038b5e65873593dece510fa09851772 (diff) | |
download | samba-df1c76e2275068d1006e82a4a21d42b58175268b.tar.gz samba-df1c76e2275068d1006e82a4a21d42b58175268b.tar.xz samba-df1c76e2275068d1006e82a4a21d42b58175268b.zip |
Fix bug #7669.
Fix bug #7669 (buffer overflow in sid_parse() in Samba3 and dom_sid_parse in
Samba4).
CVE-2010-3069:
===========
Description
===========
All current released versions of Samba are vulnerable to
a buffer overrun vulnerability. The sid_parse() function
(and related dom_sid_parse() function in the source4 code)
do not correctly check their input lengths when reading a
binary representation of a Windows SID (Security ID). This
allows a malicious client to send a sid that can overflow
the stack variable that is being used to store the SID in the
Samba smbd server.
A connection to a file share is needed to exploit this
vulnerability, either authenticated or unauthenticated
(guest connection).
Diffstat (limited to 'source/lib')
-rw-r--r-- | source/lib/util_sid.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/lib/util_sid.c b/source/lib/util_sid.c index f656bb13dc8..aa49b860d03 100644 --- a/source/lib/util_sid.c +++ b/source/lib/util_sid.c @@ -408,6 +408,9 @@ bool sid_parse(const char *inbuf, size_t len, DOM_SID *sid) sid->sid_rev_num = CVAL(inbuf, 0); sid->num_auths = CVAL(inbuf, 1); + if (sid->num_auths > MAXSUBAUTHS) { + return false; + } memcpy(sid->id_auth, inbuf+2, 6); if (len < 8 + sid->num_auths*4) return False; |