CVE-2020-28196
High · 7.5CVSS
7.5
EPSS
4.4%
Published
Nov 6, 2020
CISA due date
—
Cloudanix analysis
Attackers can send one specially formatted message that crashes the system responsible for checking user passwords and granting access tickets, stopping logins until the service is fixed.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw permits unbounded recursion in ASN.1 BER indefinite-length decoding within lib/krb5/asn.1/asn1_encode.c, exhausting stack space and crashing the Kerberos process on receipt of a crafted message.
Why it matters to the business
Successful exploitation halts Kerberos authentication services, blocking user logins, service tickets, and any dependent enterprise applications until the affected processes are restarted.
How an attack unfolds
An unauthenticated remote attacker sends a single specially constructed Kerberos protocol message containing deeply nested BER indefinite-length encodings; the decoder recurses without limit, triggering a stack overflow and immediate denial of service.
How to fix it
Upgrade krb5 to 1.17.2, 1.18.3 or newer; for Debian 9 apply package 1.7.9+dfsg-1+deb9u1; for GIT sources apply commit 4d6a54bca820327a339051853d0716f74985238c.
How to confirm the fix worked
Confirm the running krb5 library version matches or exceeds the listed fixed releases; optionally replay a benign test vector that previously triggered deep recursion and verify the process remains stable.
Typical attack path
- Locate exposed Kerberos KDC or application services on the network
- Generate a minimal ASN.1 BER message that uses indefinite-length encoding to arbitrary depth
- Transmit the message to the target over UDP or TCP port 88
- Observe process crash or excessive CPU/memory consumption confirming the recursion limit bypass
How to detect it
Review Kerberos daemon logs and system crash reports for abrupt terminations or stack-overflow signals immediately after receipt of a Kerberos request; inspect network captures for unusually large or malformed ASN.1 structures on port 88.
What your security team should do
- Apply the listed version upgrades on all Kerberos KDCs and client libraries within the next maintenance window
- Restrict inbound Kerberos traffic to trusted networks until patches are deployed
- Add version checks for krb5 to the vulnerability scanning policy
The record
MIT Kerberos 5 (aka krb5) before 1.17.2 and 1.18.x before 1.18.3 allows unbounded recursion via an ASN.1-encoded Kerberos message because the lib/krb5/asn.1/asn1_encode.c support for BER indefinite lengths lacks a recursion limit.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | krb5 | 0 | 1.17.2-r0 |
| Alpine:v3.11 | krb5 | 0 | 1.17.2-r0 |
| Alpine:v3.12 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.13 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.14 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.15 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.16 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.17 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.18 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.19 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.20 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.21 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.22 | krb5 | 0 | 1.18.3-r0 |
| Alpine:v3.9 | krb5 | 0 | 1.15.5-r1 |
| Debian:10 | krb5 | 0 | 1.17-3+deb10u1 |
| Debian:11 | krb5 | 0 | 1.18.3-1 |
| Debian:12 | krb5 | 0 | 1.18.3-1 |
| Debian:13 | krb5 | 0 | 1.18.3-1 |
| Debian:9 | krb5 | 0 | 1.15-1+deb9u2 |
| Mageia:7 | krb5 | 0 | 1.17-2.1.mga7 |
| Red Hat:enterprise_linux:8::baseos | krb5 | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-debuginfo | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-debugsource | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-devel | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-devel-debuginfo | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-libs | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-libs-debuginfo | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-pkinit | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-pkinit-debuginfo | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-server | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-server-debuginfo | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-server-ldap | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-server-ldap-debuginfo | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-workstation | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | krb5-workstation-debuginfo | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | libkadm5 | 0 | 0:1.18.2-8.el8 |
| Red Hat:enterprise_linux:8::baseos | libkadm5-debuginfo | 0 | 0:1.18.2-8.el8 |
| Red Hat:rhev_hypervisor:4.4::el8 | redhat-virtualization-host | 0 | 0:4.4.6-20210527.3.el8_4 |
| Red Hat:rhev_hypervisor:4.4::el8 | redhat-virtualization-host-image-update | 0 | 0:4.4.6-20210527.3.el8_4 |
| Rocky Linux:8 | krb5 | 0 | 0:1.18.2-8.el8 |
| SUSE:Enterprise Storage 5 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:HPE Helion OpenStack 8 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise High Performance Computing 15-ESPOS | krb5 | 0 | 1.15.2-6.12.2 |
| SUSE:Linux Enterprise High Performance Computing 15-LTSS | krb5 | 0 | 1.15.2-6.12.2 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP1 | krb5 | 0 | 1.16.3-3.15.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP2 | krb5 | 0 | 1.16.3-3.15.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP1 | krb5 | 0 | 1.16.3-3.15.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP2 | krb5 | 0 | 1.16.3-3.15.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise Server 12 SP2-LTSS | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise Server 12 SP5 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise Server 15-LTSS | krb5 | 0 | 1.15.2-6.12.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 | krb5 | 0 | 1.15.2-6.12.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:OpenStack Cloud 7 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:OpenStack Cloud 8 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:OpenStack Cloud 9 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:OpenStack Cloud Crowbar 8 | krb5 | 0 | 1.12.5-40.40.2 |
| SUSE:OpenStack Cloud Crowbar 9 | krb5 | 0 | 1.12.5-40.40.2 |
| Ubuntu:14.04:LTS | krb5 | 0 | 1.12+dfsg-2ubuntu5.4+esm2 |
| Ubuntu:16.04:LTS | krb5 | 0 | 1.13.2+dfsg-5ubuntu2.2 |
| Ubuntu:18.04:LTS | krb5 | 0 | 1.16-2ubuntu0.2 |
| Ubuntu:20.04:LTS | krb5 | 0 | 1.17-6ubuntu4.1 |
| Ubuntu:Pro:14.04:LTS | krb5 | 0 | 1.12+dfsg-2ubuntu5.4+esm2 |
| openSUSE:Leap 15.1 | krb5 | 0 | 1.16.3-lp151.2.15.1 |
| openSUSE:Leap 15.1 | krb5-mini | 0 | 1.16.3-lp151.2.15.1 |
| openSUSE:Leap 15.2 | krb5 | 0 | 1.16.3-lp152.5.13.1 |
| openSUSE:Leap 15.2 | krb5-mini | 0 | 1.16.3-lp152.5.13.1 |
| openSUSE:Tumbleweed | krb5 | 0 | 1.19.2-3.1 |
Related vulnerabilities
- CVE-2024-37371 In MIT Kerberos 5 (aka krb5) before 1.21.3, an attacker can cause invalid memory reads… Also affects krb5
- CVE-2024-37370 In MIT Kerberos 5 (aka krb5) before 1.21.3, an attacker can modify the plaintext Extra… Also affects krb5
- CVE-2011-4862 Buffer overflow in libtelnet/encrypt.c in telnetd in FreeBSD 7.3 through 9.0, MIT… Also affects krb5
- CVE-2009-3295 The prep_reprocess_req function in kdc/do_tgs_req.c in the cross-realm referral… Also affects krb5
- CVE-2008-0062 KDC in MIT Kerberos 5 (krb5kdc) does not set a global variable for some krb4 message… Also affects krb5
- CVE-2007-3999 Stack-based buffer overflow in the svcauth_gss_validate function in… Also affects krb5
- CVE-2007-2442 The gssrpc__svcauth_gssapi function in the RPC library in MIT Kerberos 5 (krb5) 1.6.1 and… Also affects krb5
- CVE-2007-0957 Stack-based buffer overflow in the krb5_klog_syslog function in the kadm5 library, as… Also affects krb5