CVE-2024-24806
Libuv SSRF in DNS Resolution Via Truncated Hostnames
Description
libuv is a multi-platform support library with a focus on asynchronous I/O. The `uv_getaddrinfo` function in `src/unix/getaddrinfo.c` (and its windows counterpart `src/win/getaddrinfo.c`), truncates hostnames to 256 characters before calling `getaddrinfo`. This behavior can be exploited to create addresses like `0x00007f000001`, which are considered valid by `getaddrinfo` and could allow an attacker to craft payloads that resolve to unintended IP addresses, bypassing developer checks. The vulnerability arises due to how the `hostname_ascii` variable (with a length of 256 bytes) is handled in `uv_getaddrinfo` and subsequently in `uv__idna_toascii`. When the hostname exceeds 256 characters, it gets truncated without a terminating null byte. As a result attackers may be able to access internal APIs or for websites (similar to MySpace) that allows users to have `username.example.com` pages. Internal services that crawl or cache these user pages can be exposed to SSRF attacks if a malicious user chooses a long vulnerable username. This issue has been addressed in release version 1.48.0. Users are advised to upgrade. There are no known workarounds for this vulnerability.
INFO
Published Date :
Feb. 7, 2024, 10:15 p.m.
Last Modified :
Nov. 21, 2024, 8:59 a.m.
Source :
[email protected]
Remotely Exploitable :
Yes !
Impact Score :
3.4
Exploitability Score :
3.9
Public PoC/Exploit Available at Github
CVE-2024-24806 has a 2 public PoC/Exploit
available at Github.
Go to the Public Exploits
tab to see the list.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2024-24806
.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
None
Jinja
None
Jinja Shell Python Dockerfile JavaScript HCL C DIGITAL Command Language
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2024-24806
vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2024-24806
vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by af854a3a-2127-422b-91ae-364da2661108
Nov. 21, 2024
Action Type Old Value New Value Added Reference http://www.openwall.com/lists/oss-security/2024/02/08/2 Added Reference http://www.openwall.com/lists/oss-security/2024/02/11/1 Added Reference http://www.openwall.com/lists/oss-security/2024/03/11/1 Added Reference https://github.com/libuv/libuv/commit/0f2d7e784a256b54b2385043438848047bc2a629 Added Reference https://github.com/libuv/libuv/commit/3530bcc30350d4a6ccf35d2f7b33e23292b9de70 Added Reference https://github.com/libuv/libuv/commit/c858a147643de38a09dd4164758ae5b685f2b488 Added Reference https://github.com/libuv/libuv/commit/e0327e1d508b8207c9150b6e582f0adf26213c39 Added Reference https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6 Added Reference https://gitlab.kitware.com/cmake/cmake/-/issues/26112 Added Reference https://lists.debian.org/debian-lts-announce/2024/03/msg00005.html Added Reference https://security.netapp.com/advisory/ntap-20240605-0008/ -
CVE Modified by [email protected]
Jul. 18, 2024
Action Type Old Value New Value Added Reference GitHub, Inc. https://gitlab.kitware.com/cmake/cmake/-/issues/26112 [No types assigned] -
CVE Modified by [email protected]
Jun. 10, 2024
Action Type Old Value New Value Added Reference GitHub, Inc. https://security.netapp.com/advisory/ntap-20240605-0008/ [No types assigned] -
CVE Modified by [email protected]
May. 14, 2024
Action Type Old Value New Value -
CVE Modified by [email protected]
May. 01, 2024
Action Type Old Value New Value Added Reference GitHub, Inc. http://www.openwall.com/lists/oss-security/2024/03/11/1 [No types assigned] -
CVE Modified by [email protected]
Mar. 05, 2024
Action Type Old Value New Value Added Reference GitHub, Inc. https://lists.debian.org/debian-lts-announce/2024/03/msg00005.html [No types assigned] -
Reanalysis by [email protected]
Feb. 28, 2024
Action Type Old Value New Value Changed CPE Configuration OR *cpe:2.3:a:libuv:libuv:*:*:*:*:*:*:*:* versions from (including) 1.45.0 up to (excluding) 1.48.0 OR *cpe:2.3:a:libuv:libuv:*:*:*:*:*:*:*:* versions from (including) 1.24.0 up to (excluding) 1.48.0 -
Reanalysis by [email protected]
Feb. 27, 2024
Action Type Old Value New Value Removed CVSS V3.1 NIST AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H Added CVSS V3.1 NIST AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L -
Reanalysis by [email protected]
Feb. 23, 2024
Action Type Old Value New Value Changed CPE Configuration OR *cpe:2.3:a:libuv:libuv:*:*:*:*:*:*:*:* versions from (including) 1.24.0 up to (including) 1.48.0 OR *cpe:2.3:a:libuv:libuv:*:*:*:*:*:*:*:* versions from (including) 1.45.0 up to (excluding) 1.48.0 -
Initial Analysis by [email protected]
Feb. 15, 2024
Action Type Old Value New Value Added CVSS V3.1 NIST AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H Changed Reference Type http://www.openwall.com/lists/oss-security/2024/02/08/2 No Types Assigned http://www.openwall.com/lists/oss-security/2024/02/08/2 Mailing List, Third Party Advisory Changed Reference Type http://www.openwall.com/lists/oss-security/2024/02/11/1 No Types Assigned http://www.openwall.com/lists/oss-security/2024/02/11/1 Mailing List, Third Party Advisory Changed Reference Type https://github.com/libuv/libuv/commit/0f2d7e784a256b54b2385043438848047bc2a629 No Types Assigned https://github.com/libuv/libuv/commit/0f2d7e784a256b54b2385043438848047bc2a629 Patch Changed Reference Type https://github.com/libuv/libuv/commit/3530bcc30350d4a6ccf35d2f7b33e23292b9de70 No Types Assigned https://github.com/libuv/libuv/commit/3530bcc30350d4a6ccf35d2f7b33e23292b9de70 Patch Changed Reference Type https://github.com/libuv/libuv/commit/c858a147643de38a09dd4164758ae5b685f2b488 No Types Assigned https://github.com/libuv/libuv/commit/c858a147643de38a09dd4164758ae5b685f2b488 Patch Changed Reference Type https://github.com/libuv/libuv/commit/e0327e1d508b8207c9150b6e582f0adf26213c39 No Types Assigned https://github.com/libuv/libuv/commit/e0327e1d508b8207c9150b6e582f0adf26213c39 Patch Changed Reference Type https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6 No Types Assigned https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6 Exploit, Vendor Advisory Added CPE Configuration OR *cpe:2.3:a:libuv:libuv:*:*:*:*:*:*:*:* versions from (including) 1.24.0 up to (including) 1.48.0 -
CVE Modified by [email protected]
Feb. 11, 2024
Action Type Old Value New Value Added Reference GitHub, Inc. http://www.openwall.com/lists/oss-security/2024/02/11/1 [No types assigned] -
CVE Modified by [email protected]
Feb. 08, 2024
Action Type Old Value New Value Added Reference GitHub, Inc. http://www.openwall.com/lists/oss-security/2024/02/08/2 [No types assigned] -
CVE Received by [email protected]
Feb. 07, 2024
Action Type Old Value New Value Added Description libuv is a multi-platform support library with a focus on asynchronous I/O. The `uv_getaddrinfo` function in `src/unix/getaddrinfo.c` (and its windows counterpart `src/win/getaddrinfo.c`), truncates hostnames to 256 characters before calling `getaddrinfo`. This behavior can be exploited to create addresses like `0x00007f000001`, which are considered valid by `getaddrinfo` and could allow an attacker to craft payloads that resolve to unintended IP addresses, bypassing developer checks. The vulnerability arises due to how the `hostname_ascii` variable (with a length of 256 bytes) is handled in `uv_getaddrinfo` and subsequently in `uv__idna_toascii`. When the hostname exceeds 256 characters, it gets truncated without a terminating null byte. As a result attackers may be able to access internal APIs or for websites (similar to MySpace) that allows users to have `username.example.com` pages. Internal services that crawl or cache these user pages can be exposed to SSRF attacks if a malicious user chooses a long vulnerable username. This issue has been addressed in release version 1.48.0. Users are advised to upgrade. There are no known workarounds for this vulnerability. Added Reference GitHub, Inc. https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6 [No types assigned] Added Reference GitHub, Inc. https://github.com/libuv/libuv/commit/0f2d7e784a256b54b2385043438848047bc2a629 [No types assigned] Added Reference GitHub, Inc. https://github.com/libuv/libuv/commit/3530bcc30350d4a6ccf35d2f7b33e23292b9de70 [No types assigned] Added Reference GitHub, Inc. https://github.com/libuv/libuv/commit/c858a147643de38a09dd4164758ae5b685f2b488 [No types assigned] Added Reference GitHub, Inc. https://github.com/libuv/libuv/commit/e0327e1d508b8207c9150b6e582f0adf26213c39 [No types assigned] Added CWE GitHub, Inc. CWE-918 Added CVSS V3.1 GitHub, Inc. AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2024-24806
is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2024-24806
weaknesses.
Exploit Prediction
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days.
0.14 }} 0.03%
score
0.50567
percentile