CVE-2013-2174
Heap-based buffer overflow in the curl_easy_unescape function in lib/escape.c in cURL and libcurl...
Heap-based buffer overflow in the curl_easy_unescape function in lib/escape.c in cURL and libcurl 7.7 through 7.30.0 allows remote attackers to cause a denial of service (application crash) or possibly execute arbitrary code via a crafted string ending in a "%" (percent) character.
Exploit likelihood
What each source reports
NVD Score used
6.8
Heap-based buffer overflow in the curl_easy_unescape function in lib/escape.c in cURL and libcurl 7.7 through 7.30.0 allows remote attackers to cause a denial of service (application crash) or possibly execute arbitrary code via a crafted string ending in a "%" (percent) character.
- Record
CVE-2013-2174- CVSS 2.0
- 6.8 Medium
AV:N/AC:M/Au:N/C:P/I:P/A:P - Weakness
- CWE-119
- Updated
- 2026-11-02
CVE List No score
Heap-based buffer overflow in the curl_easy_unescape function in lib/escape.c in cURL and libcurl 7.7 through 7.30.0 allows remote attackers to cause a denial of service (application crash) or possibly execute arbitrary code via a crafted string ending in a "%" (percent) character.
- Record
CVE-2013-2174- Updated
- 2026-11-02
EUVDEUVD-2013-2133 No score
Heap-based buffer overflow in the curl_easy_unescape function in lib/escape.c in cURL and libcurl 7.7 through 7.30.0 allows remote attackers to cause a denial of service (application crash) or possibly execute arbitrary code via a crafted string ending in a "%" (percent) character.
- Record
EUVD-2013-2133- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-98vv-mx5c-xg6c No score
Heap-based buffer overflow in the curl_easy_unescape function in lib/escape.c in cURL and libcurl...
Heap-based buffer overflow in the curl_easy_unescape function in lib/escape.c in cURL and libcurl 7.7 through 7.30.0 allows remote attackers to cause a denial of service (application crash) or possibly execute arbitrary code via a crafted string ending in a "%" (percent) character.
- Record
GHSA-98vv-mx5c-xg6c- Weakness
- CWE-119
- Updated
- 2026-11-02
OSVCURL-CVE-2013-2174 No score
URL decode buffer boundary flaw
libcurl is vulnerable to a case of bad checking of the input data which may lead to heap corruption.
The function curl_easy_unescape() decodes URL encoded strings to raw binary data. URL encoded octets are represented with %HH combinations where HH is a two-digit hexadecimal number. The decoded string is written to an allocated memory area that the function returns to the caller.
The function takes a source string and a length parameter, and if the length provided is 0 the function instead uses strlen() to figure out how much data to parse.
The "%HH" parser wrongly only considered the case where a zero byte would terminate the input. If a length-limited buffer was passed in which ended with a '%' character which was followed by two hexadecimal digits outside of the buffer libcurl was allowed to parse alas without a terminating zero, libcurl would still parse that sequence as well. The counter for remaining data to handle would then be decreased too much and wrap to become a large integer and the copying would go on too long and the destination buffer that is allocated on the heap would get overwritten.
We consider it unlikely that programs allow user-provided strings unfiltered into this function. Also, only the not zero-terminated input string use case is affected by this flaw. Exploiting this flaw for gain is probably possible for specific circumstances but we consider the general risk for this to be low.
The curl command line tool is not affected by this problem as it does not use this function.
- Record
CURL-CVE-2013-2174- Updated
- 2026-11-02
OSV No score
Heap-based buffer overflow in the curl_easy_unescape function in lib/escape.c in cURL and libcurl 7.7 through 7.30.0 allows remote attackers to cause a denial of service (application crash) or possibly execute arbitrary code via a crafted string ending in a "%" (percent) character.
- Record
CVE-2013-2174- Updated
- 2026-11-02
Show 4 moreShow less
OSVDEBIAN-CVE-2013-2174 No score
Heap-based buffer overflow in the curl_easy_unescape function in lib/escape.c in cURL and libcurl 7.7 through 7.30.0 allows remote attackers to cause a denial of service (application crash) or possibly execute arbitrary code via a crafted string ending in a "%" (percent) character.
- Record
DEBIAN-CVE-2013-2174- Updated
- 2026-11-02
OSVMGASA-2013-0188 No score
Updated curl packages fix CVE-2013-2174
libcurl is vulnerable to a case of bad checking of the input data which may lead to heap corruption. The function curl_easy_unescape() decodes URL encoded strings to raw binary data. URL encoded octets are represented with %HH combinations where HH is a two-digit hexadecimal number. The decoded string is written to an allocated memory area that the function returns to the caller (CVE-2013-2174)
- Record
MGASA-2013-0188- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10303-1 No score
curl-7.51.0-1.1 on GA media
These are all security issues fixed in the curl-7.51.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10303-1- Updated
- 2026-11-02
OSVSUSE-SU-2015:0962-1 No score
Security update for curl
This curl update fixes the following security issues:
* bnc#868627: wrong re-use of connections (CVE-2014-0138).
* bnc#868629: IP address wildcard certificate validation
(CVE-2014-0139).
* bnc#870444: --insecure option inappropriately enforcing security
safeguard.
Security Issue references:
* CVE-2014-0138
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0138>
* CVE-2014-0139
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0139>
- Record
SUSE-SU-2015:0962-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
curlDebian:12 |
before 7.31.0-1 | 7.31.0-1 |
curlDebian:13 |
before 7.31.0-1 | 7.31.0-1 |
curlDebian:14 |
before 7.31.0-1 | 7.31.0-1 |
curlDebian:6.0 |
before 7.21.0-2.1+squeeze4, 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 |
7.21.0-2.1+squeeze4 |
curlDebian:7 |
before 7.26.0-1+wheezy3, plus listed versions 7.26.0-1+wheezy2 |
7.26.0-1+wheezy3 |
curlMageia:2 |
before 7.24.0-1.2.mga2 | 7.24.0-1.2.mga2 |
curlMageia:3 |
before 7.28.1-6.1.mga3 | 7.28.1-6.1.mga3 |
curlRed Hat:enterprise_linux:5::server |
before 0:7.15.5-17.el5_9 | 0:7.15.5-17.el5_9 |
curl-debuginfoRed Hat:enterprise_linux:5::server |
before 0:7.15.5-17.el5_9 | 0:7.15.5-17.el5_9 |
curl-develRed Hat:enterprise_linux:5::server |
before 0:7.15.5-17.el5_9 | 0:7.15.5-17.el5_9 |
Show 17 moreShow less
| Package | Affected | Fixed |
|---|---|---|
curlRed Hat:enterprise_linux:6::client |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
curl-debuginfoRed Hat:enterprise_linux:6::client |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
libcurlRed Hat:enterprise_linux:6::client |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
libcurl-develRed Hat:enterprise_linux:6::client |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
curlRed Hat:enterprise_linux:6::computenode |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
curl-debuginfoRed Hat:enterprise_linux:6::computenode |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
libcurlRed Hat:enterprise_linux:6::computenode |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
libcurl-develRed Hat:enterprise_linux:6::computenode |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
curlRed Hat:enterprise_linux:6::server |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
curl-debuginfoRed Hat:enterprise_linux:6::server |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
libcurlRed Hat:enterprise_linux:6::server |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
libcurl-develRed Hat:enterprise_linux:6::server |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
curlRed Hat:enterprise_linux:6::workstation |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
curl-debuginfoRed Hat:enterprise_linux:6::workstation |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
libcurlRed Hat:enterprise_linux:6::workstation |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
libcurl-develRed Hat:enterprise_linux:6::workstation |
before 0:7.19.7-37.el6_4 | 0:7.19.7-37.el6_4 |
curlopenSUSE:Tumbleweed From an advisory covering 32 CVEs |
before 7.51.0-1.1 | 7.51.0-1.1 |
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-2013-2174 is a medium vulnerability (CVSS 6.8) in Haxx Curl, published June 22, 2013. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 9.81%, the 95th percentile. Fixed in curl 7.31.0-1.
References
oracle.com/technetwork/topics/security/ovmbulletinjul2016-3090546.html
oracle.com/technetwork/topics/security/cpujul2015-2367936.html
lists.opensuse.org/opensuse-updates/2013-07/msg00013.html
rhn.redhat.com/errata/RHSA-2013-0983.html
github.com/bagder/curl/commit/192c4f788d48f82c03e9cef40013f34370e90737
securityfocus.com/bid/60737
Show 57 moreShow less
ubuntu.com/usn/USN-1894-1
debian.org/security/2013/dsa-2713
curl.haxx.se/docs/adv_20130622.html
nvd.nist.gov/vuln/detail/CVE-2013-2174
github.com/advisories/GHSA-98vv-mx5c-xg6c
security-tracker.debian.org/tracker/CVE-2013-2174
advisories.mageia.org/MGASA-2013-0188.html
bugs.mageia.org/show_bug.cgi?id=10595
access.redhat.com/errata/RHSA-2013:0983
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=965640
security.access.redhat.com/data/csaf/v2/advisories/2013/rhsa-2013_0983.json
access.redhat.com/security/cve/CVE-2013-2174
cve.org/CVERecord?id=CVE-2013-2174
suse.com/support/update/announcement/2015/suse-su-20150962-1
bugzilla.suse.com/824517
bugzilla.suse.com/849596
bugzilla.suse.com/858673
bugzilla.suse.com/868627
bugzilla.suse.com/868629
bugzilla.suse.com/870444
bugzilla.suse.com/927174
bugzilla.suse.com/927556
bugzilla.suse.com/927746
bugzilla.suse.com/928533
suse.com/security/cve/CVE-2013-2174
suse.com/security/cve/CVE-2013-4545
suse.com/security/cve/CVE-2014-0015
suse.com/security/cve/CVE-2014-0138
suse.com/security/cve/CVE-2014-0139
suse.com/security/cve/CVE-2015-3143
suse.com/security/cve/CVE-2015-3148
suse.com/security/cve/CVE-2015-3153
suse.com/security/cve/CVE-2009-0037
suse.com/security/cve/CVE-2009-2417
suse.com/security/cve/CVE-2013-0249
suse.com/security/cve/CVE-2013-1944
suse.com/security/cve/CVE-2014-3613
suse.com/security/cve/CVE-2014-3620
suse.com/security/cve/CVE-2014-8150
suse.com/security/cve/CVE-2015-3144
suse.com/security/cve/CVE-2015-3145
suse.com/security/cve/CVE-2015-3236
suse.com/security/cve/CVE-2015-3237
suse.com/security/cve/CVE-2016-0755
suse.com/security/cve/CVE-2016-7167
suse.com/security/cve/CVE-2016-8615
suse.com/security/cve/CVE-2016-8616
suse.com/security/cve/CVE-2016-8617
suse.com/security/cve/CVE-2016-8618
suse.com/security/cve/CVE-2016-8619
suse.com/security/cve/CVE-2016-8620
suse.com/security/cve/CVE-2016-8621
suse.com/security/cve/CVE-2016-8622
suse.com/security/cve/CVE-2016-8623
suse.com/security/cve/CVE-2016-8624
suse.com/security/cve/CVE-2016-8625