cURL / Mailing Lists / curl-library / Single Mail

curl-library

[SECURITY ADVISORY] curl cookie injection for other servers

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Wed, 2 Nov 2016 08:06:35 +0100 (CET)

cookie injection for other servers
==================================

Project cURL Security Advisory, November 2, 2016 -
[Permalink](https://curl.haxx.se/docs/adv_20161102A.html)

VULNERABILITY
-------------

If cookie state is written into a cookie jar file that is later read back and
used for subsequent requests, a malicious HTTP server can inject new cookies
for arbitrary domains into said cookie jar.

The issue pertains to the function that loads cookies into memory, which reads
the specified file into a fixed-size buffer in a line-by-line manner using the
`fgets()` function. If an invocation of fgets() cannot read the whole line
into the destination buffer due to it being too small, it truncates the
output. This way, a very long cookie (name + value) sent by a malicious server
would be stored in the file and subsequently that cookie could be read
partially and crafted correctly, it could be treated as a different cookie for
another server.

We are not aware of any exploit of this flaw.

INFO

----
The Common Vulnerabilities and Exposures (CVE) project has assigned the name
CVE-2016-8615 to this issue.
AFFECTED VERSIONS
-----------------
This flaw exists in the following curl versions.
- Affected versions: curl 7.1 to and including 7.50.3
- Not affected versions: curl >= 7.51.0
libcurl is used by many applications, but not always advertised as such!
THE SOLUTION
------------
In version 7.51.0, these functions will deny negative string lengths from
being used.
A [patch for CVE-2016-8615](https://curl.haxx.se/CVE-2016-8615.patch) is
available.
RECOMMENDATIONS
---------------
We suggest you take one of the following actions immediately, in order of
preference:
  A - Upgrade curl and libcurl to version 7.51.0
  B - Apply the patch to your version and rebuild
  C - Do not use the `CURLOPT_COOKIEFILE` (or `-b`) option.
TIME LINE
---------
It was first reported to the curl project on September 23 by Cure53.
We contacted distros_at_openwall on October 19.
curl 7.51.0 was released on November 2 2016, coordinated with the publication
of this advisory.
CREDITS
-------
This vulnerability was found during a Secure Open Source audit performed by
Cure53.
-- 
  / daniel.haxx.se
-------------------------------------------------------------------
List admin: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:  https://curl.haxx.se/mail/etiquette.html
Received on 2016-11-02