libuv.so is vulnerable to Server-Side Request Forgery (SSRF). 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 allowing an attacker access to internal APIs or websites that allow 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.
www.openwall.com/lists/oss-security/2024/02/08/2
www.openwall.com/lists/oss-security/2024/02/11/1
www.openwall.com/lists/oss-security/2024/03/11/1
github.com/libuv/libuv/commit/0f2d7e784a256b54b2385043438848047bc2a629
github.com/libuv/libuv/commit/3530bcc30350d4a6ccf35d2f7b33e23292b9de70
github.com/libuv/libuv/commit/c858a147643de38a09dd4164758ae5b685f2b488
github.com/libuv/libuv/commit/e0327e1d508b8207c9150b6e582f0adf26213c39
github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6
lists.debian.org/debian-lts-announce/2024/03/msg00005.html