CVE-2014-3707
The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the...
The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the CURLOPT_COPYPOSTFIELDS option, does not properly copy HTTP POST data for an easy handle, which triggers an out-of-bounds read that allows remote web servers to read sensitive memory information.
Exploit likelihood
What each source reports
NVD Score used
4.3
The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the CURLOPT_COPYPOSTFIELDS option, does not properly copy HTTP POST data for an easy handle, which triggers an out-of-bounds read that allows remote web servers to read sensitive memory information.
- Record
CVE-2014-3707- CVSS 2.0
- 4.3 Medium
AV:N/AC:M/Au:N/C:P/I:N/A:N - Weakness
- CWE-200
- Updated
- 2026-11-02
CVE List No score
The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the CURLOPT_COPYPOSTFIELDS option, does not properly copy HTTP POST data for an easy handle, which triggers an out-of-bounds read that allows remote web servers to read sensitive memory information.
- Record
CVE-2014-3707- Updated
- 2026-11-02
EUVDEUVD-2014-3653 No score
The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the CURLOPT_COPYPOSTFIELDS option, does not properly copy HTTP POST data for an easy handle, which triggers an out-of-bounds read that allows remote web servers to read sensitive memory information.
- Record
EUVD-2014-3653- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-x89w-3fj3-7gmx No score
The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the...
The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the CURLOPT_COPYPOSTFIELDS option, does not properly copy HTTP POST data for an easy handle, which triggers an out-of-bounds read that allows remote web servers to read sensitive memory information.
- Record
GHSA-x89w-3fj3-7gmx- Weakness
- CWE-200
- Updated
- 2026-11-02
OSVCURL-CVE-2014-3707 No score
duphandle read out of bounds
libcurl's function
curl_easy_duphandle()
has a bug that can lead to libcurl eventually sending off sensitive data that
was not intended for sending.
When doing an HTTP POST transfer with libcurl, you can use the
CURLOPT_COPYPOSTFIELDS option to specify a memory area holding the data to
send to the remote server. The memory area's size is set with a separate
option, for example CURLOPT_POSTFIELDSIZE.
As the name implies, the data in the specified buffer is copied to a privately held memory buffer that libcurl allocates on the heap. The memory area is associated with the common CURL handle, often referred to as an "easy handle".
This handle can be duplicated by an application to create an identical copy, and all the already set options and data is then also similarly cloned and are be associated with the newly returned handle. This also includes the data to send in an HTTP POST request.
The internal libcurl function that duplicates options from the old handle to the new had two problems:
-
It mistakenly treated the post data buffer as if it was a C string which is assumed to end with a zero byte.
strdup()was subsequently used to duplicate the post data buffer, and as a post data buffer can both legitimately contain a zero byte, or may not contain any zero bytes at all (including a tailing one),strdup()could create a copy that a) was too small b) was too large or c) could crash due to reading an inaccessible memory area. Thestrdup()function of course allocates memory off the heap. -
After duplication of the handle data, the pointer used to read from when sending the data was not updated. When sending off the post, libcurl would still read from the original handle's buffer which at that time could have been freed or reused for other purposes.
When libcurl subsequently constructs the HTTP POST request and includes data for the protocol body it copies data from that pointer using the old size and the old pointer. This makes a read from the wrong place and can lead to libcurl inserting data into the request that happens to be stored at that places in memory at that time.
We are not aware of anyone having been able to actually exploit this for nefarious purposes, but we cannot exclude that it is possible or even might already have been exploited.
- Record
CURL-CVE-2014-3707- Updated
- 2026-11-02
OSV No score
The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the CURLOPT_COPYPOSTFIELDS option, does not properly copy HTTP POST data for an easy handle, which triggers an out-of-bounds read that allows remote web servers to read sensitive memory information.
- Record
CVE-2014-3707- Updated
- 2026-11-02
Show 4 moreShow less
OSVDEBIAN-CVE-2014-3707 No score
The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the CURLOPT_COPYPOSTFIELDS option, does not properly copy HTTP POST data for an easy handle, which triggers an out-of-bounds read that allows remote web servers to read sensitive memory information.
- Record
DEBIAN-CVE-2014-3707- Updated
- 2026-11-02
OSVMGASA-2014-0444 No score
Updated curl packages fix CVE-2014-3707
Updated curl packages fix security vulnerability:
Symeon Paraschoudis discovered that the curl_easy_duphandle() function in cURL has a bug that can lead to libcurl eventually sending off sensitive data that was not intended for sending, while performing a HTTP POST operation. This bug requires CURLOPT_COPYPOSTFIELDS and curl_easy_duphandle() to be used in that order, and then the duplicate handle must be used to perform the HTTP POST. The curl command line tool is not affected by this problem as it does not use this sequence (CVE-2014-3707).
- Record
MGASA-2014-0444- Updated
- 2026-11-02
OSVUBUNTU-CVE-2014-3707 No score
The curl_easy_duphandle function in libcurl 7.17.1 through 7.38.0, when running with the CURLOPT_COPYPOSTFIELDS option, does not properly copy HTTP POST data for an easy handle, which triggers an out-of-bounds read that allows remote web servers to read sensitive memory information.
- Record
UBUNTU-CVE-2014-3707- Updated
- 2026-11-02
OSVUSN-2399-1 No score
curl vulnerability
Symeon Paraschoudis discovered that curl incorrectly handled memory when being used with CURLOPT_COPYPOSTFIELDS and curl_easy_duphandle(). This may result in sensitive data being incorrectly sent to the remote server.
- Record
USN-2399-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
curlDebian:12 |
before 7.38.0-3 | 7.38.0-3 |
curlDebian:13 |
before 7.38.0-3 | 7.38.0-3 |
curlDebian:14 |
before 7.38.0-3 | 7.38.0-3 |
curlDebian:6.0 |
before 7.21.0-2.1+squeeze10, plus listed versions 7.21.0-17.21.0-27.21.0-2.1+squeeze17.21.0-2.1+squeeze27.21.0-2.1+squeeze3 Show 6 moreShow less7.21.0-2.1+squeeze47.21.0-2.1+squeeze57.21.0-2.1+squeeze67.21.0-2.1+squeeze77.21.0-2.1+squeeze87.21.0-2.1+squeeze9 |
7.21.0-2.1+squeeze10 |
curlDebian:7 |
before 7.26.0-1+wheezy11, plus listed versions 7.26.0-1+wheezy107.26.0-1+wheezy27.26.0-1+wheezy37.26.0-1+wheezy47.26.0-1+wheezy5 Show 4 moreShow less7.26.0-1+wheezy67.26.0-1+wheezy77.26.0-1+wheezy87.26.0-1+wheezy9 |
7.26.0-1+wheezy11 |
curlMageia:3 |
before 7.28.1-6.6.mga3 | 7.28.1-6.6.mga3 |
curlMageia:4 |
before 7.34.0-1.4.mga4 | 7.34.0-1.4.mga4 |
curl-debuginfoRed Hat:enterprise_linux:6::client From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
libcurl-develRed Hat:enterprise_linux:6::client From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
curlRed Hat:enterprise_linux:6::client From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
Show 30 moreShow less
| Package | Affected | Fixed |
|---|---|---|
libcurlRed Hat:enterprise_linux:6::client From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
curl-debuginfoRed Hat:enterprise_linux:6::computenode From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
libcurl-develRed Hat:enterprise_linux:6::computenode From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
curlRed Hat:enterprise_linux:6::computenode From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
libcurlRed Hat:enterprise_linux:6::computenode From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
curlRed Hat:enterprise_linux:6::server From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
curl-debuginfoRed Hat:enterprise_linux:6::server From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
libcurlRed Hat:enterprise_linux:6::server From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
libcurl-develRed Hat:enterprise_linux:6::server From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
curlRed Hat:enterprise_linux:6::workstation From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
curl-debuginfoRed Hat:enterprise_linux:6::workstation From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
libcurlRed Hat:enterprise_linux:6::workstation From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
libcurl-develRed Hat:enterprise_linux:6::workstation From an advisory covering 5 CVEs |
before 0:7.19.7-46.el6 | 0:7.19.7-46.el6 |
curl-debuginfoRed Hat:enterprise_linux:7::client From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
libcurl-develRed Hat:enterprise_linux:7::client From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
curlRed Hat:enterprise_linux:7::client From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
libcurlRed Hat:enterprise_linux:7::client From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
curl-debuginfoRed Hat:enterprise_linux:7::computenode From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
libcurl-develRed Hat:enterprise_linux:7::computenode From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
curlRed Hat:enterprise_linux:7::computenode From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
libcurlRed Hat:enterprise_linux:7::computenode From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
curlRed Hat:enterprise_linux:7::server From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
curl-debuginfoRed Hat:enterprise_linux:7::server From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
libcurlRed Hat:enterprise_linux:7::server From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
libcurl-develRed Hat:enterprise_linux:7::server From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
curlRed Hat:enterprise_linux:7::workstation From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
curl-debuginfoRed Hat:enterprise_linux:7::workstation From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
libcurlRed Hat:enterprise_linux:7::workstation From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
libcurl-develRed Hat:enterprise_linux:7::workstation From an advisory covering 5 CVEs |
before 0:7.29.0-25.el7 | 0:7.29.0-25.el7 |
curlUbuntu:14.04:LTS |
before 7.35.0-1ubuntu2.2, plus listed versions 7.32.0-1ubuntu17.33.0-1ubuntu17.34.0-1ubuntu17.35.0-1ubuntu17.35.0-1ubuntu27.35.0-1ubuntu2.1 |
7.35.0-1ubuntu2.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2014-3707 is a medium vulnerability (CVSS 4.3) in Haxx Libcurl, published November 5, 2014. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 5.12%, the 92nd percentile. Fixed in curl 7.38.0-3.
References
oracle.com/technetwork/topics/security/cpujul2015-2367936.html
debian.org/security/2014/dsa-3069
oracle.com/technetwork/topics/security/cpuoct2015-2367953.html
ubuntu.com/usn/USN-2399-1
oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html
oracle.com/technetwork/topics/security/linuxbulletinoct2015-2719645.html
Show 61 moreShow less
lists.apple.com/archives/security-announce/2015/Aug/msg00001.html
rhn.redhat.com/errata/RHSA-2015-1254.html
securityfocus.com/bid/70988
kb.juniper.net/InfoCenter/index?page=content&id=JSA10743
lists.opensuse.org/opensuse-updates/2015-02/msg00040.html
support.apple.com/kb/HT205031
curl.haxx.se/docs/adv_20141105.html
nvd.nist.gov/vuln/detail/CVE-2014-3707
github.com/advisories/GHSA-x89w-3fj3-7gmx
security-tracker.debian.org/tracker/CVE-2014-3707
advisories.mageia.org/MGASA-2014-0444.html
bugs.mageia.org/show_bug.cgi?id=14468
access.redhat.com/errata/RHSA-2015:1254
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=835898
bugzilla.redhat.com/show_bug.cgi?id=883002
bugzilla.redhat.com/show_bug.cgi?id=997185
bugzilla.redhat.com/show_bug.cgi?id=1008178
bugzilla.redhat.com/show_bug.cgi?id=1011083
bugzilla.redhat.com/show_bug.cgi?id=1011101
bugzilla.redhat.com/show_bug.cgi?id=1058767
bugzilla.redhat.com/show_bug.cgi?id=1104160
bugzilla.redhat.com/show_bug.cgi?id=1136154
bugzilla.redhat.com/show_bug.cgi?id=1154059
bugzilla.redhat.com/show_bug.cgi?id=1154747
bugzilla.redhat.com/show_bug.cgi?id=1154941
bugzilla.redhat.com/show_bug.cgi?id=1156422
bugzilla.redhat.com/show_bug.cgi?id=1161163
bugzilla.redhat.com/show_bug.cgi?id=1168137
bugzilla.redhat.com/show_bug.cgi?id=1178692
bugzilla.redhat.com/show_bug.cgi?id=1213306
bugzilla.redhat.com/show_bug.cgi?id=1213351
security.access.redhat.com/data/csaf/v2/advisories/2015/rhsa-2015_1254.json
access.redhat.com/security/cve/CVE-2014-3613
cve.org/CVERecord?id=CVE-2014-3613
nvd.nist.gov/vuln/detail/CVE-2014-3613
curl.haxx.se/docs/adv_20140910A.html
access.redhat.com/security/cve/CVE-2014-3707
cve.org/CVERecord?id=CVE-2014-3707
access.redhat.com/security/cve/CVE-2014-8150
cve.org/CVERecord?id=CVE-2014-8150
nvd.nist.gov/vuln/detail/CVE-2014-8150
curl.haxx.se/docs/adv_20150108B.html
access.redhat.com/security/cve/CVE-2015-3143
cve.org/CVERecord?id=CVE-2015-3143
nvd.nist.gov/vuln/detail/CVE-2015-3143
curl.haxx.se/docs/adv_20150422A.html
access.redhat.com/security/cve/CVE-2015-3148
cve.org/CVERecord?id=CVE-2015-3148
nvd.nist.gov/vuln/detail/CVE-2015-3148
curl.haxx.se/docs/adv_20150422B.html
access.redhat.com/errata/RHSA-2015:2159
bugzilla.redhat.com/show_bug.cgi?id=1130239
bugzilla.redhat.com/show_bug.cgi?id=1154060
bugzilla.redhat.com/show_bug.cgi?id=1161182
bugzilla.redhat.com/show_bug.cgi?id=1166264
bugzilla.redhat.com/show_bug.cgi?id=1170339
bugzilla.redhat.com/show_bug.cgi?id=1218272
security.access.redhat.com/data/csaf/v2/advisories/2015/rhsa-2015_2159.json
ubuntu.com/security/CVE-2014-3707
ubuntu.com/security/notices/USN-2399-1