CVE-2024-6874
macidn punycode buffer overread
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
4.3
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
CVE-2024-6874- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - CVSS 3.1
- 3.1 Low
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-125
- Updated
- 2026-11-02
CVE List
3.1
macidn punycode buffer overread
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
CVE-2024-6874- CVSS 3.1
- 3.1 Low
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
EUVDEUVD-2024-47867
3.1
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
EUVD-2024-47867- CVSS 3.1
- 3.1 Low
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-chhh-4xrf-42pg
3.1
libcurl's URL API function [curl_url_get()](https://curl.se/libcurl/c/curl_url_get.html) offers...
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
GHSA-chhh-4xrf-42pg- CVSS 3.1
- 3.1 Low
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-125
- Updated
- 2026-11-02
OSVALPINE-CVE-2024-6874
4.3
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
ALPINE-CVE-2024-6874- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
OSVAZL-47020
4.3
CVE-2024-6874 affecting package curl for versions less than 8.8.0-1
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
AZL-47020- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
Show 9 moreShow less
OSVAZL-47046
4.3
CVE-2024-6874 affecting package curl for versions less than 8.8.0-1
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
AZL-47046- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
OSVAZL-49664
4.3
CVE-2024-6874 affecting package cmake for versions less than 3.30.3-2
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
AZL-49664- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-05
OSVBELL-CVE-2024-6874
4.3
- Record
BELL-CVE-2024-6874- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
OSV
3.1
macidn punycode buffer overread
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
CVE-2024-6874- CVSS 3.1
- 3.1 Low
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2024-6874
4.3
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null terminate the string. This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
DEBIAN-CVE-2024-6874- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
OSVJLSEC-2025-37
4.3
libcurl's URL API function [`curl_url_get()`](https://curl.se/libcurl/c/curl_url_get.html) offers...
libcurl's URL API function
curl_url_get() offers punycode
conversions, to and from IDN. Asking to convert a name that is exactly 256
bytes, libcurl ends up reading outside of a stack based buffer when built to
use the macidn IDN backend. The conversion function then fills up the
provided buffer exactly - but does not null terminate the string.
This flaw can lead to stack contents accidently getting returned as part of the converted string.
- Record
JLSEC-2025-37- CVSS 3.1
- 4.3 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
OSVCURL-CVE-2024-6874 No score
macidn punycode buffer overread
libcurl's URL API function curl_url_get() offers punycode conversions, to and from IDN. Asking to convert a name that is exactly 256 bytes, libcurl ends up reading outside of a stack based buffer when built to use the macidn IDN backend. The conversion function then fills up the provided buffer exactly - but does not null-terminate the string.
This flaw can lead to stack contents accidentally getting returned as part of the converted string.
- Record
CURL-CVE-2024-6874- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:14225-1 No score
curl-8.9.0-1.1 on GA media
These are all security issues fixed in the curl-8.9.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:14225-1- Updated
- 2026-11-02
OSVSUSE-SU-2025:03198-1 No score
Security update for curl
This update for curl fixes the following issues:
Update to version 8.14.1 (jsc#PED-13055, jsc#PED-13056).
Security issues fixed:
- CVE-2025-0665: eventfd double close can cause libcurl to act unreliably (bsc#1236589).
- CVE-2025-4947: QUIC certificate check is skipped with wolfSSL allows for MITM attacks (bsc#1243397).
- CVE-2025-5025: no QUIC certificate pinning with wolfSSL can lead to connections to impostor servers that are not easily noticed (bsc#1243706).
- CVE-2025-5399: bug in websocket code can cause libcurl to get trapped in an endless busy-loop when processing specially crafted packets (bsc#1243933).
- CVE-2024-6874: punycode conversions to/from IDN can leak stack content when libcurl is built to use the macidn IDN backend (bsc#1228260).
- CVE-2025-9086: bug in patch comparison logic when processing cookies can lead to out-of-bounds read in heap buffer (bsc#1249191).
- CVE-2025-10148: predictable websocket mask can lead to proxy cache poisoning by malicious server (bsc#1249348).
Other issues fixed:
-
Fix wrong return code when --retry is used (bsc#1249367).
- tool_operate: fix return code when --retry is used but not triggered [b42776b]
-
Fix the --ftp-pasv option in curl v8.14.1 (bsc#1246197).
- tool_getparam: fix --ftp-pasv [5f805ee]
-
Fixed with version 8.14.1:
- TLS: add CURLOPT_SSL_SIGNATURE_ALGORITHMS and --sigalgs.
- websocket: add option to disable auto-pong reply.
- huge number of bugfixes.
Please see https://curl.se/ch/ for full changelogs.
- Record
SUSE-SU-2025:03198-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
curlAlpine:v3.17 |
before 8.9.0-r0 | 8.9.0-r0 |
curlAlpine:v3.18 |
before 8.9.0-r0 | 8.9.0-r0 |
curlAlpine:v3.19 |
before 8.9.0-r0 | 8.9.0-r0 |
curlAlpine:v3.20 |
before 8.9.0-r0 | 8.9.0-r0 |
curlAlpine:v3.21 |
before 8.9.0-r0 | 8.9.0-r0 |
curlAlpine:v3.22 |
before 8.9.0-r0 | 8.9.0-r0 |
curlAlpine:v3.23 |
before 8.9.0-r0 | 8.9.0-r0 |
curlAlpine:v3.24 |
before 8.9.0-r0 | 8.9.0-r0 |
curlAzure Linux:3 |
before 8.8.0-1 | 8.8.0-1 |
curlAzure Linux:2 |
before 8.8.0-1 | 8.8.0-1 |
Show 10 moreShow less
| Package | Affected | Fixed |
|---|---|---|
cmakeAzure Linux:3 |
before 3.30.3-2 | 3.30.3-2 |
curlAlpaquita:stream |
8.8.0-r0 up to 8.9.0-r0 | 8.9.0-r0 |
curlBellSoft Hardened Containers:stream |
8.8.0-r0 up to 8.9.0-r0 | 8.9.0-r0 |
curlDebian:13 |
before 8.9.0-1 | 8.9.0-1 |
curlDebian:14 |
before 8.9.0-1 | 8.9.0-1 |
LibCURL_jllJulia |
8.8.0+0 up to 8.9.0+0 | 8.9.0+0 |
curlSUSE:Linux Enterprise Module for Basesystem 15 SP6 From an advisory covering 7 CVEs |
before 8.14.1-150600.4.28.1 | 8.14.1-150600.4.28.1 |
curlSUSE:Linux Enterprise Module for Basesystem 15 SP7 From an advisory covering 7 CVEs |
before 8.14.1-150600.4.28.1 | 8.14.1-150600.4.28.1 |
curlopenSUSE:Leap 15.6 From an advisory covering 7 CVEs |
before 8.14.1-150600.4.28.1 | 8.14.1-150600.4.28.1 |
curlopenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 8.9.0-1.1 | 8.9.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-6874 is a medium vulnerability (CVSS 4.3) in Curl, published July 24, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.79%, the 56th percentile. Fixed in curl 8.9.0-r0.
References
curl.se/docs/CVE-2024-6874.json
curl.se/docs/CVE-2024-6874.html
hackerone.com/reports/2604391
openwall.com/lists/oss-security/2024/07/24/2
security.netapp.com/advisory/ntap-20240822-0004
nvd.nist.gov/vuln/detail/CVE-2024-6874
Show 23 moreShow less
github.com/advisories/GHSA-chhh-4xrf-42pg
security.alpinelinux.org/vuln/CVE-2024-6874
docs.bell-sw.com/security/cves/CVE-2024-6874
github.com/CVEProject/cvelistV5/tree/main/cves/2024/6xxx/CVE-2024-6874.json
security-tracker.debian.org/tracker/CVE-2024-6874
suse.com/support/update/announcement/2025/suse-su-202503198-1
bugzilla.suse.com/1228260
bugzilla.suse.com/1236589
bugzilla.suse.com/1243397
bugzilla.suse.com/1243706
bugzilla.suse.com/1243933
bugzilla.suse.com/1246197
bugzilla.suse.com/1249191
bugzilla.suse.com/1249348
bugzilla.suse.com/1249367
suse.com/security/cve/CVE-2024-6874
suse.com/security/cve/CVE-2025-0665
suse.com/security/cve/CVE-2025-10148
suse.com/security/cve/CVE-2025-4947
suse.com/security/cve/CVE-2025-5025
suse.com/security/cve/CVE-2025-5399
suse.com/security/cve/CVE-2025-9086
suse.com/security/cve/CVE-2024-6197