CVE-2011-2192
inappropriate GSSAPI delegation
Project curl Security Advisory, June 23rd 2011 Permalink
VULNERABILITY
When doing GSSAPI authentication, libcurl unconditionally performs credential delegation. This hands the server a copy of the client's security credentials, allowing the server to impersonate the client to any other using the same GSSAPI mechanism. This is obviously a very sensitive operation, which should only be done when the user explicitly so directs.
The GSS/Negotiate feature is only used by libcurl for HTTP authentication if told to, and only if libcurl was built with a library that provides the GSSAPI. Many builds of libcurl do not have GSS enabled.
INFO
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2011-2192 to this issue.
CWE-281: Improper Preservation of Permissions
Severity: Medium
AFFECTED VERSIONS
- Affected versions: curl 7.10.6 to and including 7.21.6
- Not affected versions: curl < 7.10.6 and >= 7.21.7
Note that libcurl is used by many applications, and not always advertised as such.
SOLUTION
libcurl 7.21.7 avoids setting the option that selects delegation.
RECOMMENDATIONS
We suggest you take one of the following actions immediately, in order of preference:
A - Upgrade to curl and libcurl 7.21.7
B - Apply patch and rebuild libcurl
C - Disable credential forwarding. Assuming the GSSAPI mechanism is
Kerberos, users can acquire an initial credential (TGT
)
which is not forwardable. On Unix platforms, both the MIT and Heimdal
versions of kinit
use the -F
flag for this
(note the capital "F"; -f
does the opposite!). You can also
set this as a global default in /etc/krb5.conf
(or wherever
that file lives in a particular installation):
[libdefaults]
forwardable = no
D - Stop using GSS/Negotiate
TIMELINE
Reported to us on June 6 2011.
We discussed solutions and a first patch was written on June 8.
curl 7.21.7 was released on June 23 2011, coordinated with the publication of this this flaw.
CREDITS
- Reported-by: Richard Silverman
- Patched-by: Daniel Stenberg
- Help-by: Dan Fandrich, Julien Chaffraix
Thanks a lot!