CVE-2026-39312
SoftEther VPN Server vulnerability analysis and mitigation

Overview

CVE-2026-39312 is a pre-authentication denial-of-service (DoS) vulnerability in SoftEther VPN Developer Edition affecting version 5.2.5188 and earlier. An unauthenticated remote attacker can crash the vpnserver process by sending a single malformed EAP-TLS packet over raw L2TP (UDP/1701), immediately terminating all active VPN sessions. The vulnerability was published on April 7, 2026, and was reported by researcher stanleytobias. It carries a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory).

Technical details

The root cause is an uncontrolled memory allocation (CWE-789) in src/Cedar/Proto_PPP.c, function PPPProcessEAPTlsResponse() (line 3651). During EAP-TLS fragment reassembly over PPP/L2TP, the server reads a 32-bit TlsLength field directly from the attacker-controlled packet header and passes it to ZeroMalloc() without any upper bound validation. When TlsLength is set to 0xFFFFFFFF, the internal MallocEx() function detects the oversized allocation and calls AbortExitEx(), which terminates the entire vpnserver process. The attack is reachable pre-authentication because L2TP raw mode (UDP/1701) requires no encryption, and even the IPsec path uses a publicly documented default PSK of "vpn" (GitHub Advisory).

Impact

Successful exploitation causes an immediate crash of the vpnserver worker process, dropping all active VPN sessions. While SoftEther's watchdog process restarts the worker within 3–5 seconds, a sustained packet flood allows an attacker to re-exploit at each restart interval, resulting in persistent denial of service. There is no confidentiality or integrity impact; the vulnerability is limited to availability (GitHub Advisory).

Exploitability

A proof-of-concept (PoC) exploit with a detailed attack sequence is publicly documented in the GitHub Security Advisory, including the exact malformed packet structure required to trigger the crash. The attack requires only approximately 11–12 UDP packets to port 1701 with no credentials. As of the time of reporting, there is no evidence of active in-the-wild exploitation. The EPSS score is approximately 0.095% (low probability of exploitation in the near term), and the vulnerability is not listed in the CISA KEV catalog (GitHub Advisory).

Exploitation steps

  1. Reconnaissance: Identify internet-facing SoftEther VPN Developer Edition instances with UDP/1701 (L2TP) open using tools like Shodan or Masscan, targeting version 5.2.5188 or earlier.
  2. Establish L2TP Tunnel: Send L2TP control messages to UDP/1701 — SCCRQ → SCCRP → SCCCN — to establish an L2TP tunnel with the target server (no credentials required).
  3. Open L2TP Session: Send ICRQ → ICRP → ICCN messages to establish an L2TP session within the tunnel.
  4. Negotiate PPP: Exchange LCP Config-Request and Config-Ack messages to complete PPP negotiation.
  5. Trigger EAP Authentication: Send an EAP-Response/Identity packet with any arbitrary username to initiate EAP-TLS authentication; the server responds with EAP-Request/TLS (Start).
  6. Send Malformed EAP-TLS Packet: Craft and send an EAP-Response/TLS packet with the following structure: PPP Protocol 0xC227 (EAP), EAP Code 0x02 (Response), EAP Type 0x0D (EAP-TLS), Flags 0xC0 (L=1, M=1), TLS Length 0xFFFFFFFF, and empty TLS Data.
  7. Achieve DoS: The vpnserver process crashes with Fatal Error: MallocEx() error: too large size, dropping all active VPN sessions. Repeat at the watchdog restart interval (~3–5 seconds) for persistent DoS (GitHub Advisory).

Indicators of compromise

  • Network: Unexpected UDP traffic to port 1701 from untrusted or external sources; rapid sequences of ~11–12 UDP packets to UDP/1701 from a single source IP; repeated L2TP tunnel establishment attempts in short intervals.
  • Logs: vpnserver crash log entries containing Fatal Error: MallocEx() error: too large size; frequent watchdog-triggered process restarts logged in SoftEther server logs; EAP-TLS negotiation attempts from unknown or unauthenticated sources.
  • Process: Repeated unexpected termination and restart of the vpnserver worker process; all active VPN sessions dropping simultaneously at regular intervals (GitHub Advisory).

Mitigation and workarounds

As of the advisory publication, no patched version of SoftEther VPN Developer Edition has been released (the advisory lists "None" for patched versions). The suggested code fix is to add an upper bound check on tlsLength before the ZeroMalloc() call in PPPProcessEAPTlsResponse(), rejecting any value exceeding 16 MB. As an immediate workaround, administrators should implement network-level controls (firewall rules) to restrict L2TP traffic on UDP/1701 to trusted source IP addresses only. Additionally, changing the default IPsec PSK from the hardcoded value "vpn" to a randomly generated secret is strongly recommended (GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related SoftEther VPN Server vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2025-25568CRITICAL9.8
  • SoftEther VPN Server logoSoftEther VPN Server
  • cpe:2.3:a:softether:vpn
NoNoMar 12, 2025
CVE-2025-25567CRITICAL9.8
  • SoftEther VPN Server logoSoftEther VPN Server
  • cpe:2.3:a:softether:vpn
NoNoMar 12, 2025
CVE-2025-25565CRITICAL9.8
  • SoftEther VPN Server logoSoftEther VPN Server
  • cpe:2.3:a:softether:vpn
NoNoMar 12, 2025
CVE-2026-39312HIGH7.5
  • SoftEther VPN Server logoSoftEther VPN Server
  • cpe:2.3:a:softether:see.sys
NoNoApr 07, 2026
CVE-2025-25566MEDIUM5.6
  • SoftEther VPN Server logoSoftEther VPN Server
  • cpe:2.3:a:softether:vpn
NoNoMar 12, 2025

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management