CVE-2020-28196

7.5 HIGH

📋 TL;DR

This vulnerability in MIT Kerberos 5 allows remote attackers to cause a denial of service (DoS) via unbounded recursion when processing specially crafted ASN.1-encoded Kerberos messages with BER indefinite lengths. It affects systems running vulnerable versions of krb5 that process Kerberos authentication requests. The vulnerability can be exploited by any entity that can send Kerberos messages to the affected service.

💻 Affected Systems

Products:
  • MIT Kerberos 5 (krb5)
Versions: Versions before 1.17.2 and 1.18.x before 1.18.3
Operating Systems: Linux, Unix-like systems, and any OS using vulnerable krb5 libraries
Default Config Vulnerable: ⚠️ Yes
Notes: Any system using krb5 for authentication (e.g., Active Directory integration, SSH with GSSAPI, NFS with Kerberos) is potentially affected if it processes incoming Kerberos messages.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise if the recursion triggers memory corruption that can be weaponized, though this is theoretical and not demonstrated.

🟠

Likely Case

Denial of service (DoS) causing service crashes or resource exhaustion, disrupting Kerberos authentication and dependent services.

🟢

If Mitigated

Limited impact with proper network segmentation and monitoring; DoS may affect availability but not compromise data integrity or confidentiality.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires crafting malicious ASN.1 messages; no public proof-of-concept has been released, but the vulnerability is in a critical authentication component.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.17.2 or 1.18.3 and later

Vendor Advisory: https://github.com/krb5/krb5/commit/57415dda6cf04e73ffc3723be518eddfae599bfd

Restart Required: Yes

Instructions:

1. Check current krb5 version. 2. Update to patched version via package manager (e.g., apt-get upgrade krb5, yum update krb5). 3. Restart services using krb5 (e.g., sshd, sssd, nfs).

🔧 Temporary Workarounds

Network Segmentation

linux

Restrict access to Kerberos services (ports 88, 749) to trusted networks only.

iptables -A INPUT -p tcp --dport 88 -s trusted_network -j ACCEPT
iptables -A INPUT -p tcp --dport 88 -j DROP

Rate Limiting

linux

Implement rate limiting on Kerberos ports to reduce DoS impact.

iptables -A INPUT -p tcp --dport 88 -m limit --limit 10/min -j ACCEPT
iptables -A INPUT -p tcp --dport 88 -j DROP

🧯 If You Can't Patch

  • Implement strict network controls to limit Kerberos traffic to essential sources only.
  • Monitor system logs and resource usage for signs of DoS attacks or unusual Kerberos activity.

🔍 How to Verify

Check if Vulnerable:

Check krb5 version: krb5-config --version or dpkg -l | grep krb5 or rpm -qa | grep krb5. If version is before 1.17.2 or 1.18.x before 1.18.3, it's vulnerable.

Check Version:

krb5-config --version 2>/dev/null || dpkg -l | grep krb5 2>/dev/null || rpm -qa | grep krb5 2>/dev/null

Verify Fix Applied:

After update, verify version is 1.17.2+ or 1.18.3+ using the same commands, and test Kerberos functionality (e.g., kinit).

📡 Detection & Monitoring

Log Indicators:

  • Repeated crashes of krb5-related services (e.g., kdc, sssd)
  • High CPU/memory usage by krb5 processes
  • Failed authentication attempts with malformed packets in Kerberos logs

Network Indicators:

  • Unusual volume of traffic to Kerberos ports (88/tcp, 88/udp, 749/tcp)
  • ASN.1-encoded packets with indefinite length fields

SIEM Query:

source="kerberos.log" AND (event="crash" OR "segmentation fault") OR process="krb5" AND resource_usage>threshold

🔗 References

📤 Share & Export