CVE-2020-35359

7.5 HIGH

📋 TL;DR

CVE-2020-35359 is a denial-of-service vulnerability in Pure-FTPd where attackers can exhaust connection limits, preventing legitimate users from accessing the FTP server. This affects all systems running vulnerable versions of Pure-FTPd with connection limits configured. The vulnerability allows remote attackers to disrupt FTP services without authentication.

💻 Affected Systems

Products:
  • Pure-FTPd
Versions: 1.0.48 and earlier versions
Operating Systems: Linux, Unix-like systems
Default Config Vulnerable: ⚠️ Yes
Notes: All configurations with connection limits are vulnerable. The vulnerability specifically affects the MaxClientsPerIP and MaxClients configuration settings.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete FTP service outage preventing all legitimate file transfers and access to hosted content, potentially disrupting business operations dependent on FTP services.

🟠

Likely Case

Temporary service degradation where legitimate users experience connection failures or timeouts during attack periods, impacting file transfer operations.

🟢

If Mitigated

Minimal impact with proper rate limiting, connection monitoring, and network segmentation in place to detect and block malicious connection attempts.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires only basic scripting knowledge to create multiple FTP connections. Public exploit code is available and trivial to implement.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.0.49 and later

Vendor Advisory: https://github.com/jedisct1/pure-ftpd/releases

Restart Required: Yes

Instructions:

1. Download Pure-FTPd 1.0.49 or later from official repository. 2. Stop the Pure-FTPd service. 3. Install the updated version. 4. Restart the Pure-FTPd service. 5. Verify the service is running with the patched version.

🔧 Temporary Workarounds

Implement Connection Rate Limiting

linux

Use iptables or similar firewall rules to limit connection attempts per IP address

iptables -A INPUT -p tcp --dport 21 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 -j DROP

Reduce Connection Limits

linux

Lower MaxClients and MaxClientsPerIP values in Pure-FTPd configuration

Edit /etc/pure-ftpd/pure-ftpd.conf and set: MaxClients 50, MaxClientsPerIP 5

🧯 If You Can't Patch

  • Implement network-level rate limiting using firewalls or load balancers to restrict connection attempts from single IP addresses
  • Deploy intrusion prevention systems (IPS) to detect and block connection flooding patterns

🔍 How to Verify

Check if Vulnerable:

Check Pure-FTPd version: pure-ftpd --version | grep 'pure-ftpd'

Check Version:

pure-ftpd --version | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+'

Verify Fix Applied:

Verify version is 1.0.49 or higher: pure-ftpd --version

📡 Detection & Monitoring

Log Indicators:

  • Multiple '421' error responses in logs indicating 'Too many connections'
  • Rapid succession of connection attempts from single IP addresses
  • Increased 'Connection refused' or 'Timeout' messages

Network Indicators:

  • High volume of TCP SYN packets to port 21 from single sources
  • Multiple simultaneous FTP connections from same IP exceeding normal patterns

SIEM Query:

source="pure-ftpd.log" AND "421" AND "Too many connections" | stats count by src_ip | where count > 10

🔗 References

📤 Share & Export