CVE-2020-1763

7.5 HIGH

📋 TL;DR

An unauthenticated attacker can crash the libreswan pluto daemon by sending specially-crafted IKEv1 Informational Exchange packets, causing a denial of service. The daemon automatically respawns after crashing. This affects libreswan versions 3.27 through 3.31.

💻 Affected Systems

Products:
  • libreswan
Versions: 3.27 through 3.31
Operating Systems: Linux distributions using affected libreswan versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects IKEv1 Informational Exchange packets. IKEv2 is not vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Persistent denial of service attacks could disrupt VPN connectivity by repeatedly crashing the pluto daemon, though it automatically restarts.

🟠

Likely Case

Temporary VPN service disruption during attack, with automatic recovery when daemon respawns.

🟢

If Mitigated

Minimal impact with proper network segmentation and monitoring to detect and block malicious IKE traffic.

🌐 Internet-Facing: HIGH - Unauthenticated remote exploitation via IKEv1 packets makes internet-facing systems particularly vulnerable.
🏢 Internal Only: MEDIUM - Internal attackers could still exploit this, but requires network access to the VPN endpoint.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability is in packet parsing code and requires sending malformed IKEv1 packets. Proof of concept is available in the bug reports.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.32 and later

Vendor Advisory: https://libreswan.org/security/CVE-2020-1763/CVE-2020-1763.txt

Restart Required: Yes

Instructions:

1. Update libreswan to version 3.32 or later using your distribution's package manager. 2. Restart the pluto daemon or reboot the system.

🔧 Temporary Workarounds

Disable IKEv1

linux

If IKEv1 is not required, disable it to prevent exploitation via this protocol.

Edit /etc/ipsec.conf and remove or comment out IKEv1 configurations
Restart ipsec service: systemctl restart ipsec

Network filtering

linux

Block IKEv1 Informational Exchange packets at network perimeter.

iptables -A INPUT -p udp --dport 500 -m string --hex-string '|28|' --algo bm -j DROP
iptables -A INPUT -p udp --dport 4500 -m string --hex-string '|28|' --algo bm -j DROP

🧯 If You Can't Patch

  • Implement network segmentation to restrict access to VPN endpoints
  • Deploy intrusion detection/prevention systems to monitor for IKEv1 exploitation attempts

🔍 How to Verify

Check if Vulnerable:

Check libreswan version: ipsec --version | grep Libreswan

Check Version:

ipsec --version | grep Libreswan

Verify Fix Applied:

Verify version is 3.32 or higher: ipsec --version | grep Libreswan

📡 Detection & Monitoring

Log Indicators:

  • Pluto daemon crash logs in /var/log/secure or system logs
  • Repeated pluto daemon restarts

Network Indicators:

  • Unusual IKEv1 Informational Exchange packets from single sources
  • Spike in UDP port 500/4500 traffic

SIEM Query:

source="*secure*" "pluto" AND ("crash" OR "segfault" OR "restart")

🔗 References

📤 Share & Export