Netatalk < 3.1.12 Arbitrary Code Execution Vulnerability - Active Check
🗓️ 17 Nov 2020 00:00:00Reported by Copyright (C) 2020 Greenbone AGType
openvas🔗 plugins.openvas.org👁 23 Views
| Reporter | Title | Published | Views | Family All 60 |
|---|---|---|---|---|
| Netatalk < 3.1.12 - Authentication Bypass Exploit | 22 Dec 201800:00 | – | zdt | |
| QNAP Netatalk < 3.1.12 - Authentication Bypass Exploit | 8 Apr 201900:00 | – | zdt | |
| Exploit for Out-of-bounds Write in Netatalk | 11 Dec 202508:43 | – | githubexploit | |
| netatalk3 -- remote code execution vulnerability | 10 Nov 201800:00 | – | freebsd | |
| CVE-2018-1160 | 20 Dec 201821:00 | – | alpinelinux | |
| The vulnerability of the Netatalk protocol, related to writing beyond the buffer boundaries in memory, allows a hacker to execute arbitrary code. | 4 Apr 201900:00 | – | bdu_fstec | |
| CVE-2018-1160 | 21 Dec 201800:00 | – | circl | |
| Netatalk Out-of-Bounds Write Vulnerability | 21 Dec 201800:00 | – | cnvd | |
| Netatalk Attention Quantum Out-of-bounds Write (CVE-2018-1160) | 18 Feb 201900:00 | – | checkpoint_advisories | |
| CVE-2018-1160 | 20 Dec 201821:00 | – | cve |
10
| Source | Link |
|---|---|
| tenable | www.tenable.com/security/research/tra-2018-48 |
| github | www.github.com/tenable/poc/tree/master/netatalk/cve_2018_1160/ |
| netatalk | www.netatalk.io/3.1/ReleaseNotes3.1.12 |
| packetstormsecurity | www.packetstormsecurity.com/files/152440/QNAP-Netatalk-Authentication-Bypass.html |
| exploit-db | www.exploit-db.com/exploits/46048/ |
| securityfocus | www.securityfocus.com/bid/106301 |
| exploit-db | www.exploit-db.com/exploits/46034/ |
| exploit-db | www.exploit-db.com/exploits/46675/ |
# SPDX-FileCopyrightText: 2020 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:netatalk:netatalk";
if(description)
{
script_oid("1.3.6.1.4.1.25623.1.0.117047");
script_version("2024-03-15T05:06:15+0000");
script_tag(name:"last_modification", value:"2024-03-15 05:06:15 +0000 (Fri, 15 Mar 2024)");
script_tag(name:"creation_date", value:"2020-11-17 11:11:18 +0000 (Tue, 17 Nov 2020)");
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.0/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:"2019-10-09 23:38:00 +0000 (Wed, 09 Oct 2019)");
script_cve_id("CVE-2018-1160");
script_name("Netatalk < 3.1.12 Arbitrary Code Execution Vulnerability - Active Check");
script_category(ACT_ATTACK);
script_copyright("Copyright (C) 2020 Greenbone AG");
script_family("General");
script_dependencies("gb_netatalk_asip_afp_detect.nasl");
script_require_ports("Services/appleshare", 548);
script_mandatory_keys("netatalk/detected");
script_tag(name:"summary", value:"Netatalk is prone to an unauthenticated code execution
vulnerability.");
script_tag(name:"vuldetect", value:"The following checks are done to verify this vulnerability:
- sends a crafted OpenSession request with an overwritten server quantum
- checks if the remote host is accepting the request
- checks if the remote host is reflecting the crafted / overwritten server quantum back in the
response");
script_tag(name:"impact", value:"A remote unauthenticated attacker can leverage this vulnerability
to achieve arbitrary code execution.");
script_tag(name:"insight", value:"Netatalk is vulnerable to an out of bounds write in
dsi_opensess.c. This is due to lack of bounds checking on attacker controlled data.");
script_tag(name:"affected", value:"Netatalk prior to version 3.1.12.");
script_tag(name:"solution", value:"Update to version 3.1.12 or later.");
script_xref(name:"URL", value:"https://netatalk.io/3.1/ReleaseNotes3.1.12");
script_xref(name:"URL", value:"http://www.securityfocus.com/bid/106301");
script_xref(name:"URL", value:"https://www.exploit-db.com/exploits/46034/");
script_xref(name:"URL", value:"https://www.exploit-db.com/exploits/46048/");
script_xref(name:"URL", value:"https://www.exploit-db.com/exploits/46675/");
script_xref(name:"URL", value:"http://packetstormsecurity.com/files/152440/QNAP-Netatalk-Authentication-Bypass.html");
script_xref(name:"URL", value:"https://www.tenable.com/security/research/tra-2018-48");
script_xref(name:"URL", value:"https://github.com/tenable/poc/tree/master/netatalk/cve_2018_1160/");
script_tag(name:"qod_type", value:"remote_vul");
script_tag(name:"solution_type", value:"VendorFix");
exit(0);
}
include("host_details.inc");
include("byte_func.inc");
include("dump.inc");
if( ! port = get_app_port( cpe:CPE, service:"appleshare" ) )
exit( 0 );
if( ! get_app_location( cpe:CPE, port:port, nofork:TRUE ) )
exit( 0 );
if( ! soc = open_sock_tcp( port ) )
exit( 0 );
# nb: (this will be reflected back to us by a vulnerable target)
server_quantum = raw_string( 0xfe, 0xca, 0x1d, 0xc0 );
quantum_pkt = raw_string( 0xad, 0xaa, 0xaa, 0xba, # Overwrites attn_quantum
0x00, 0x00, 0x00, 0x00 ); # Overwrites datasize
quantum_pkt += server_quantum; # Overwrites server_quantum (this will be reflected back to us by a vulnerable target)
option_pkt = raw_string( 0x01 ); # Option: Attention quantum (1)
option_pkt += mkbyte( strlen( quantum_pkt ) ); # Length (of the quantum_pkt)
data = option_pkt + quantum_pkt;
full_pkt = mkbyte( 0 ); # Flags: Request (0x00)
full_pkt += mkbyte( 4 ); # Command: OpenSession (4)
full_pkt += mkword( 1 ); # Request ID: 1
full_pkt += mkdword( 0 ); # Data offset: 0
full_pkt += mkdword( strlen( data ) ); # Length (of the data)
full_pkt += mkdword( 0 ); # Reserved
full_pkt += data;
send( socket:soc, data:full_pkt );
res = recv( socket:soc, length:1024 );
close( soc );
if( ! res || strlen( res ) < 22 ) # nb: Insufficient length (e.g. no Option like Server quantum included)
exit( 0 );
# n.b.: A vulnerable target is responding with something like e.g. the following below,
# whereas an invulnerable target doesn't reply at all.
# 0x00: 01 04 00 01 00 00 00 00 00 00 00 0C 00 00 00 00 ................
# 0x10: 00 04 C0 1D CA FE 02 04 00 00 00 80 ............
if( res[0] == mkbyte( 1 ) && # Flags: Reply (0x01)
res[1] == mkbyte( 4 ) && # Command: OpenSession (4)
getword( blob:res, pos:2 ) == 1 && # Request ID: 1
getdword( blob:res, pos:4 ) == 0 ) { # Error code: success (0)
check = getdword( blob:server_quantum );
# nb: Test system had returned the quantum in little-endian byte order
if( getdword( blob:res, pos:18 ) == check )
vuln = TRUE;
# ... but we're checking big-endian as well just to be sure.
set_byte_order( BYTE_ORDER_LITTLE_ENDIAN );
if( getdword( blob:res, pos:18 ) == check )
vuln = TRUE;
# nb: Only used for the reporting below (don't use it in the checks above)
check_le = getdword( blob:server_quantum );
if( vuln ) {
report = "The target system has been found vulnerable because it reflects back the overwritten ";
report += "server quantum " + check + " (big-endian) / " + check_le + " (little-endian) as a response ";
report += 'to a crafted OpenSession request sent by the scanner.\n\n';
report += "Note: Patched (fixed) systems are known to not response at all to such a crafted request.";
security_message( port:port, data:report );
exit( 0 );
}
exit( 99 );
}
exit( 0 );
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 Mar 2024 00:00Current
9.7High risk
Vulners AI Score9.7
CVSS 39.8
CVSS 210
CVSS 3.19.8
EPSS0.86539
SSVC