libcurl SOCKS5 Heap Buffer Overflow Vulnerability (Oct 2023)
🗓️ 14 Jul 2025 00:00:00Reported by Copyright (C) 2025 Greenbone AGType
openvas🔗 plugins.openvas.org👁 4 Views
10
| Source | Link |
|---|---|
| curl | www.curl.se/docs/CVE-2023-38545.html |
# SPDX-FileCopyrightText: 2025 Greenbone AG
# Some text descriptions might be excerpted from (a) referenced
# source(s), and are Copyright (C) by the respective right holder(s).
#
# SPDX-License-Identifier: GPL-2.0-only
CPE = "cpe:/a:haxx:libcurl";
if(description)
{
script_oid("1.3.6.1.4.1.25623.1.0.119059");
script_version("2025-07-15T05:43:27+0000");
script_tag(name:"last_modification", value:"2025-07-15 05:43:27 +0000 (Tue, 15 Jul 2025)");
script_tag(name:"creation_date", value:"2025-07-14 12:41:11 +0000 (Mon, 14 Jul 2025)");
script_tag(name:"cvss_base", value:"10.0");
script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:C/I:C/A:C");
script_tag(name:"severity_vector", value:"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
script_tag(name:"severity_origin", value:"NVD");
script_tag(name:"severity_date", value:"2023-10-25 13:24:03 +0000 (Wed, 25 Oct 2023)");
script_cve_id("CVE-2023-38545");
script_name("libcurl SOCKS5 Heap Buffer Overflow Vulnerability (Oct 2023)");
script_category(ACT_GATHER_INFO);
script_copyright("Copyright (C) 2025 Greenbone AG");
script_family("Buffer overflow");
script_dependencies("gb_libcurl_ssh_login_detect.nasl");
script_mandatory_keys("libcurl/detected");
script_xref(name:"URL", value:"https://curl.se/docs/CVE-2023-38545.html");
script_tag(name:"summary", value:"libcurl is prone to a heap buffer overflow vulnerability in the
SOCKS5 proxy handshake.");
script_tag(name:"vuldetect", value:"Checks if a vulnerable version is present on the target host.");
script_tag(name:"insight", value:"This flaw makes curl overflow a heap based buffer in the SOCKS5
proxy handshake.
When curl is asked to pass along the hostname to the SOCKS5 proxy to allow that to resolve the
address instead of it getting done by curl itself, the maximum length that hostname can be is 255
bytes.
If the hostname is detected to be longer than 255 bytes, curl switches to local name resolving and
instead passes on the resolved address only to the proxy. Due to a bug, the local variable that
means 'let the host resolve the name' could get the wrong value during a slow SOCKS5 handshake,
and contrary to the intention, copy the too long hostname to the target buffer instead of copying
just the resolved address there.");
script_tag(name:"affected", value:"libcurl versions starting from 7.69.0 and prior to 8.4.0.");
script_tag(name:"solution", value:"Update to version 8.4.0 or later.");
script_tag(name:"qod_type", value:"executable_version_unreliable");
script_tag(name:"solution_type", value:"VendorFix");
exit(0);
}
include("version_func.inc");
include("host_details.inc");
if( isnull( port = get_app_port( cpe:CPE ) ) )
exit( 0 );
if( ! infos = get_app_version_and_location( cpe:CPE, port:port, exit_no_version:TRUE ) )
exit( 0 );
version = infos["version"];
location = infos["location"];
if( version_in_range_exclusive( version:version, test_version_lo:"7.69.0", test_version_up:"8.4.0" ) ) {
report = report_fixed_ver( installed_version:version, fixed_version:"8.4.0", install_path:location );
security_message( port:port, data:report );
exit( 0 );
}
exit( 99 );
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
15 Jul 2025 00:00Current
9.9High risk
Vulners AI Score9.9
CVSS 3.18.8 - 9.8
EPSS0.78483
SSVC