CVE-2023-28220 Overview
CVE-2023-28220 is a Remote Code Execution (RCE) vulnerability in the Layer 2 Tunneling Protocol (L2TP) implementation across a wide range of Microsoft Windows operating systems. This vulnerability allows unauthenticated attackers to execute arbitrary code on vulnerable systems by sending specially crafted requests to the L2TP service over the network. The vulnerability is associated with CWE-591 (Sensitive Data Storage in Improperly Locked Memory), indicating improper memory handling in the L2TP component.
Critical Impact
Successful exploitation of this vulnerability could allow remote attackers to execute arbitrary code with SYSTEM privileges on vulnerable Windows systems, potentially leading to complete system compromise without user interaction.
Affected Products
- Microsoft Windows 10 (versions 1507, 1607, 1809, 20H2, 21H2, 22H2)
- Microsoft Windows 11 (versions 21H2, 22H2)
- Microsoft Windows Server 2008 SP2 and R2 SP1
- Microsoft Windows Server 2012 and R2
- Microsoft Windows Server 2016
- Microsoft Windows Server 2019
- Microsoft Windows Server 2022
Discovery Timeline
- 2023-04-11 - CVE-2023-28220 published to NVD
- 2024-11-21 - Last updated in NVD database
Technical Details for CVE-2023-28220
Vulnerability Analysis
This vulnerability exists in the Layer 2 Tunneling Protocol (L2TP) implementation in Windows. L2TP is a tunneling protocol commonly used for VPN connections and network encapsulation. The flaw stems from improper memory handling within the L2TP service, specifically related to sensitive data storage in improperly locked memory (CWE-591).
The vulnerability requires a race condition to be won for successful exploitation, as indicated by the high attack complexity. When an attacker successfully exploits this condition, they can achieve remote code execution without requiring any privileges or user interaction. The network-based attack vector means systems with L2TP services exposed to untrusted networks are at heightened risk.
Root Cause
The root cause of CVE-2023-28220 lies in improper memory management within the L2TP protocol handler. Specifically, the vulnerability is associated with CWE-591, indicating that sensitive data is stored in memory that is not properly locked. This can lead to race conditions where memory contents may be accessed or modified in unexpected ways during concurrent operations, ultimately allowing an attacker to manipulate execution flow and achieve code execution.
Attack Vector
The attack is conducted over the network against the L2TP service (typically UDP port 1701). An unauthenticated attacker can send specially crafted L2TP packets designed to trigger the race condition in the vulnerable memory handling code. While the high attack complexity suggests that exploitation is not trivial and requires precise timing to win the race condition, successful exploitation does not require any form of authentication or user interaction.
The attack scenario involves:
- Identifying a target system running a vulnerable Windows version with L2TP services accessible
- Sending malicious L2TP packets to trigger the memory handling vulnerability
- Exploiting the race condition to achieve code execution with elevated privileges
Due to the nature of this vulnerability involving race conditions and memory corruption, specific exploitation details require precise timing and system state manipulation. Refer to the Microsoft Security Advisory for additional technical information.
Detection Methods for CVE-2023-28220
Indicators of Compromise
- Unusual L2TP traffic patterns or high volumes of malformed L2TP packets targeting UDP port 1701
- Unexpected crashes or restarts of the Routing and Remote Access Service (RRAS)
- Anomalous process creation from L2TP-related services with unexpected child processes
- Memory access violations or crash dumps associated with rasman.dll or l2tpmgr.dll
Detection Strategies
- Monitor network traffic for abnormal L2TP packet sequences or malformed protocol messages on UDP port 1701
- Implement endpoint detection rules to identify suspicious behavior from L2TP-handling processes
- Deploy SentinelOne's behavioral AI to detect exploitation attempts targeting memory corruption in network protocols
- Enable Windows Event logging for VPN and RRAS services to capture exploitation indicators
Monitoring Recommendations
- Configure network intrusion detection systems (IDS/IPS) to alert on anomalous L2TP traffic patterns
- Monitor Routing and Remote Access Service (RRAS) for unexpected restarts or crashes
- Implement SentinelOne Singularity Platform for real-time behavioral monitoring and automatic threat response
- Review Windows Security logs for events related to VPN service anomalies (Event IDs 20189, 20276)
How to Mitigate CVE-2023-28220
Immediate Actions Required
- Apply Microsoft security updates from the April 2023 Patch Tuesday release immediately
- If patching is not immediately possible, disable the L2TP service on systems where it is not required
- Restrict network access to UDP port 1701 using firewall rules to trusted sources only
- Prioritize patching for internet-facing systems and VPN servers
- Monitor for exploitation attempts using endpoint detection and response solutions
Patch Information
Microsoft released security patches for this vulnerability as part of their April 2023 security updates. Organizations should apply the appropriate cumulative update for their specific Windows version. Detailed patch information and download links are available in the Microsoft Security Advisory for CVE-2023-28220.
Workarounds
- Disable the Routing and Remote Access Service (RRAS) if L2TP VPN functionality is not required
- Use firewall rules to block inbound UDP port 1701 traffic from untrusted networks
- Consider migrating to alternative VPN protocols such as IKEv2 or SSTP until patching is complete
- Implement network segmentation to limit exposure of systems running L2TP services
# Disable Routing and Remote Access Service if L2TP is not needed
sc config RemoteAccess start= disabled
net stop RemoteAccess
# Block L2TP UDP port via Windows Firewall
netsh advfirewall firewall add rule name="Block L2TP Inbound" dir=in action=block protocol=UDP localport=1701
# Verify RRAS service status
sc query RemoteAccess
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

