Update to upstream patch
Update to the as-committed version of this patch, which affects the comments it includes.
This commit is contained in:
parent
9594be4f3a
commit
24f7f1a446
@ -1,32 +1,51 @@
|
||||
From: David Woodhouse <David.Woodhouse@intel.com>
|
||||
commit f18ddf5d82de0ab7591a36e465bc24225776940f
|
||||
Author: David Woodhouse <David.Woodhouse@intel.com>
|
||||
Date: Tue Jul 15 12:54:15 2014 -0400
|
||||
|
||||
In commit cd7d6b08 ("Verify acceptor's mech in SPNEGO initiator") the
|
||||
pointer sc->internal_mech became an alias into sc->mech_set->elements[],
|
||||
which should be considered constant for the duration of the SPNEGO
|
||||
context.
|
||||
Fix double-free in SPNEGO [CVE-2014-4343]
|
||||
|
||||
So don't free it.
|
||||
In commit cd7d6b08 ("Verify acceptor's mech in SPNEGO initiator") the
|
||||
pointer sc->internal_mech became an alias into sc->mech_set->elements,
|
||||
which should be considered constant for the duration of the SPNEGO
|
||||
context. So don't free it.
|
||||
|
||||
This led to the obvious crashes in the allocator, and also to strange
|
||||
behaviour with Firefox failing to fall back to alternative mechanisms
|
||||
when it should have done.
|
||||
CVE-2014-4343:
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1117963
|
||||
In MIT krb5 releases 1.10 and newer, an unauthenticated remote
|
||||
attacker with the ability to spoof packets appearing to be from a
|
||||
GSSAPI acceptor can cause a double-free condition in GSSAPI initiators
|
||||
(clients) which are using the SPNEGO mechanism, by returning a
|
||||
different underlying mechanism than was proposed by the initiator. At
|
||||
this stage of the negotiation, the acceptor is unauthenticated, and
|
||||
the acceptor's response could be spoofed by an attacker with the
|
||||
ability to inject traffic to the initiator.
|
||||
|
||||
==31436== Invalid free() / delete / delete[] / realloc()
|
||||
==31436== at 0x4A07577: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
|
||||
==31436== by 0x3AE900D6B9: generic_gss_release_oid_set (gssapi_alloc.h:93)
|
||||
==31436== by 0x3AE903775F: release_spnego_ctx (spnego_mech.c:2895)
|
||||
==31436== by 0x3AE9037830: spnego_gss_delete_sec_context (spnego_mech.c:2164)
|
||||
==31436== by 0x3AE9012292: gss_delete_sec_context (g_delete_sec_context.c:90)
|
||||
==31436== Address 0x4fb5510 is 0 bytes inside a block of size 80 free'd
|
||||
==31436== at 0x4A07577: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
|
||||
==31436== by 0x3AE900C88E: generic_gss_release_oid (oid_ops.c:103)
|
||||
==31436== by 0x3AE903BE85: spnego_gss_init_sec_context (spnego_mech.c:792)
|
||||
==31436== by 0x3AE90154CA: gss_init_sec_context (g_init_sec_context.c:210)
|
||||
---
|
||||
src/lib/gssapi/spnego/spnego_mech.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
Historically, some double-free vulnerabilities can be translated into
|
||||
remote code execution, though the necessary exploits must be tailored
|
||||
to the individual application and are usually quite
|
||||
complicated. Double-frees can also be exploited to cause an
|
||||
application crash, for a denial of service. However, most GSSAPI
|
||||
client applications are not vulnerable, as the SPNEGO mechanism is not
|
||||
used by default (when GSS_C_NO_OID is passed as the mech_type argument
|
||||
to gss_init_sec_context()). The most common use of SPNEGO is for
|
||||
HTTP-Negotiate, used in web browsers and other web clients. Most such
|
||||
clients are believed to not offer HTTP-Negotiate by default, instead
|
||||
requiring a whitelist of sites for which it may be used to be
|
||||
configured. If the whitelist is configured to only allow
|
||||
HTTP-Negotiate over TLS connections ("https://"), a successful
|
||||
attacker must also spoof the web server's SSL certificate, due to the
|
||||
way the WWW-Authenticate header is sent in a 401 (Unauthorized)
|
||||
response message. Unfortunately, many instructions for enabling
|
||||
HTTP-Negotiate in common web browsers do not include a TLS
|
||||
requirement.
|
||||
|
||||
CVSSv2 Vector: AV:N/AC:H/Au:N/C:C/I:C/A:C/E:POC/RL:OF/RC:C
|
||||
|
||||
[kaduk@mit.edu: CVE summary and CVSSv2 vector]
|
||||
|
||||
ticket: 7969 (new)
|
||||
target_version: 1.12.2
|
||||
tags: pullup
|
||||
|
||||
diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c
|
||||
index 173c6d2..8f829d8 100644
|
||||
@ -40,10 +59,3 @@ index 173c6d2..8f829d8 100644
|
||||
gss_delete_sec_context(&tmpmin, &sc->ctx_handle,
|
||||
GSS_C_NO_BUFFER);
|
||||
|
||||
--
|
||||
1.9.3
|
||||
|
||||
|
||||
--
|
||||
David Woodhouse Open Source Technology Centre
|
||||
David.Woodhouse@intel.com Intel Corporation
|
||||
|
@ -1040,7 +1040,7 @@ exit 0
|
||||
%changelog
|
||||
* Wed Jul 16 2014 Nalin Dahyabhai <nalin@redhat.com> - 1.12.1-12
|
||||
- gssapi: pull in proposed fix for a double free in initiators (David
|
||||
Woodhouse, #1117963)
|
||||
Woodhouse, CVE-2014-4343, #1117963)
|
||||
|
||||
* Sat Jul 12 2014 Tom Callaway <spot@fedoraproject.org> - 1.12.1-11
|
||||
- fix license handling
|
||||
|
Loading…
Reference in New Issue
Block a user