CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-20833

The Undying Zombie: Windows Kerberos RC4 Disclosure

Amit Schendel
Amit Schendel
Senior Security Researcher

Feb 10, 2026·6 min read·264 visits

Executive Summary (TL;DR)

Windows Kerberos is still speaking RC4, a broken cipher from the 80s. Local attackers can force the KDC to issue RC4-encrypted tickets, allowing for easy offline cracking (Kerberoasting) and information disclosure. Microsoft has finally added registry enforcement to kill it.

CVE-2026-20833 exposes a fundamental weakness in how Windows handles legacy cryptography within the Kerberos authentication protocol. Despite years of warnings, the Key Distribution Center (KDC) continued to entertain requests for RC4-HMAC encryption, a cipher from 1987 that is cryptographically broken. This vulnerability allows local attackers to downgrade authentication exchanges to this weak cipher, facilitating trivial brute-force attacks and information disclosure. It is less of a 'bug' in the code and more of a 'bug' in decision-making that prioritized backward compatibility over security.

The Hook: Blast from the Past

It is the year 2026. We are on the verge of quantum computing, AI writes our poetry, and yet, deep inside the belly of the Windows operating system, a cryptographic zombie from 1987 is still shambling around. I am talking, of course, about RC4 (Rivest Cipher 4).

CVE-2026-20833 isn't a complex heap overflow or a race condition in the kernel. It is a testament to the persistent nightmare of backward compatibility. The vulnerability lies in the Windows Kerberos Key Distribution Center (KDC). Despite AES being the standard for over a decade, the KDC has remained frustratingly polite. If a client or a service account asked for a ticket encrypted with RC4-HMAC (etype 23), the KDC would oblige.

Why does this matter? Because RC4 is effectively 'cryptographic cheese'. It has known biases in its keystream output. For a hacker, seeing RC4 in a Kerberos exchange is like finding a safe with the combination written on a sticky note attached to the door. This vulnerability allows an attacker to explicitly request this weak encryption to peel back the layers of Kerberos security.

The Flaw: A Polite KDC is a Vulnerable KDC

The root cause here is CWE-327: Use of a Broken or Risky Cryptographic Algorithm. In a secure Kerberos environment, the KDC should negotiate the strongest possible encryption (AES-256). However, the Windows KDC logic contained a fallback mechanism that was too permissive.

When a user requests a Ticket-Granting Service (TGS) ticket, the encryption type used for the ticket is determined by the msDS-SupportedEncryptionTypes attribute of the target service account. If that attribute allows RC4, or if it isn't set (defaulting to legacy behavior in older domains), the KDC will happily wrap the session key and the ticket in RC4-HMAC.

The flaw is that a local attacker doesn't need to break into the KDC to trigger this. They simply need to request a ticket for a service that supports RC4. Even if the domain generally prefers AES, the mere presence of RC4 support allows the attacker to 'downgrade' the security of that specific transaction. The KDC failed to enforce a 'hard floor' on crypto quality, effectively allowing clients to dictate their own insecurity.

The Code: Logic Reconstruction

Since Windows is closed-source, we don't have the luxury of a GitHub commit link. However, based on the behavior analysis and the patch (KB5073381), we can reconstruct the logic flow that led to this mess. The vulnerability exists in the ticket issuance logic within kdcsvc.dll.

The Vulnerable Logic (Pseudo-code):

// Pre-patch: The KDC is too accommodating
EncType selectedType = GetBestCommonEtype(clientSupported, serviceSupported);
 
// If the service allows RC4 (23), we use it. No questions asked.
if (selectedType == RC4_HMAC) {
    Ticket tgs = GenerateTicket();
    EncryptTicket(tgs, RC4_HMAC, serviceKey);
    return tgs; // Vulnerable: KDC issues weak crypto
}

The Patched Logic:

The fix introduces a check against a global enforcement policy (registry keys) before agreeing to use RC4. It's a bouncer at the door checking IDs.

// Post-patch: The KDC checks the new enforcement policy
EncType selectedType = GetBestCommonEtype(clientSupported, serviceSupported);
 
if (selectedType == RC4_HMAC) {
    // Check if RC4 is explicitly banned via Registry or Group Policy
    if (IsRC4DisabledGlobally() || !IsRC4AllowedForService(serviceAccount)) {
        // Log Event ID 33 (Audit) or Block
        LogError("RC4 request denied due to security policy.");
        return KRB_AP_ERR_MODIFIED; // Access Denied
    }
    
    // Only proceed if we are in 'Audit' mode or legacy mode
    EncryptTicket(tgs, RC4_HMAC, serviceKey);
    return tgs;
}

The patch effectively creates a 'kill switch' for RC4, allowing administrators to force the KDC to reject these requests even if the service account is misconfigured to support them.

The Exploit: Kerberoasting on Easy Mode

Exploiting this is trivially easy because it relies on standard protocol features. We are essentially doing Kerberoasting, but we are guaranteeing that the hash we get back is the weaker RC4-HMAC version, which is exponentially faster to crack than AES.

The Attack Chain:

  1. Reconnaissance: The attacker gains low-level access to a domain-joined machine. They query Active Directory for service accounts.
  2. Target Selection: The attacker looks for accounts where msDS-SupportedEncryptionTypes is missing or includes 0x4 (RC4).
  3. The Trigger: Using a tool like Rubeus, the attacker requests a ticket specifically asking for RC4.
    Rubeus.exe kerberoast /etype:rc4 /nowrap
  4. The Capture: The KDC (pre-patch) obliges and returns a TGS encrypted with the target service account's NTLM hash (RC4).
  5. The Crack: The attacker takes this hash offline. Because it is RC4, they can use hashcat -m 13100 and chew through millions of passwords per second.

This bypasses the safety net of AES. Even if the password is reasonably strong, the speed at which RC4 can be brute-forced (compared to the computational cost of AES derivation) significantly lowers the bar for a successful compromise.

The Impact: Why Should We Panic?

The impact here is High Confidentiality Loss, but let's translate that into English. If an attacker can force RC4 usage, they can recover the plaintext password of service accounts with frightening speed.

Once a service account is compromised:

  1. Silver Tickets: The attacker can forge a TGS for that service. If the service is MSSQL, they are now sysadmin. If it's a domain controller service, it's Game Over.
  2. Lateral Movement: The attacker uses the compromised credentials to move laterally to other servers where that account has rights.
  3. Passive Decryption: If the attacker is sniffing network traffic, and they know the RC4 key (which they just cracked), they can decrypt past and future traffic protected by that session key.

This vulnerability turns the 'secure' Kerberos protocol into a mechanism for credential distribution to attackers.

The Fix: Finally Killing the Zombie

Microsoft's January 2026 update (KB5073381) provides the gun to shoot the zombie, but—crucially—it does not pull the trigger automatically. You have to do it yourself.

Remediation Steps:

  1. Install the Update: Apply the January 2026 cumulative updates to all Domain Controllers.
  2. Audit First: Enable the KdcAuditRc4Usage registry key. Watch your System Event Log for Event ID 33. This will tell you which legacy applications are still trying to use RC4. If you block them immediately, you will break production.
  3. The Scream Test: Once you've identified and upgraded the stragglers, set the registry to Enforce mode (KdcForceAES).
    • HKLM\System\CurrentControlSet\Services\Kdc\KdcForceAES = 1
  4. Sanitize AD: Run a script to update msDS-SupportedEncryptionTypes on all user and computer objects to ensure only AES-128 and AES-256 are flagged.

If you don't set the registry keys, the patch does nothing but sit there looking pretty. You must actively configure the KDC to reject RC4.

Official Patches

MicrosoftOfficial Knowledge Base article for the fix and registry settings.

Technical Appendix

CVSS Score
5.5/ 10
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
EPSS Probability
0.02%
Top 96% most exploited

Affected Systems

Windows Server 2025Windows Server 2022Windows Server 2019Windows Server 2016Windows Server 2012 R2Windows Server 2012Windows Server 2008 R2 SP1Windows Server 2008 SP2

Affected Versions Detail

Product
Affected Versions
Fixed Version
Windows Server 2025
Microsoft
< 10.0.26100.3223010.0.26100.32230
Windows Server 2022
Microsoft
< 10.0.20348.464810.0.20348.4648
Windows Server 2019
Microsoft
< 10.0.17763.827610.0.17763.8276
AttributeDetail
CWE IDCWE-327
Attack VectorLocal (AV:L)
CVSS Score5.5 (Medium)
EPSS Score0.02%
ImpactHigh Confidentiality
Encryption TypeRC4-HMAC (etype 23)
Fix TypeRegistry Enforcement

MITRE ATT&CK Mapping

T1558.003Kerberoasting
Credential Access
T1003OS Credential Dumping
Credential Access
T1040Network Sniffing
Credential Access
CWE-327
Use of a Broken or Risky Cryptographic Algorithm

The use of a broken or risky cryptographic algorithm is an unnecessary risk that may result in the exposure of sensitive information.

Known Exploits & Detection

RubeusTool capable of requesting specific etypes (RC4) for Kerberoasting.
MimikatzCapable of extracting and manipulating Kerberos tickets.

Vulnerability Timeline

Vulnerability Published by Microsoft
2026-01-13
Patch KB5073381 Released
2026-01-13
NVD Analysis Completed
2026-01-15

References & Sources

  • [1]Microsoft Security Response Center Advisory
  • [2]ZDI January 2026 Security Update Review
Related Vulnerabilities
CVE-2022-33679CVE-2022-33647

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•1 day ago•CVE-2026-58197
8.8

CVE-2026-58197: Host Escape and Lateral Movement via Insecure Container Network Defaults in ToolHive

A high-severity access control vulnerability in ToolHive CLI before v0.30.1 and ToolHive Studio before v0.38.0 allows local containerized MCP servers to bypass network isolation. This enables malicious workloads to establish TCP/IP connections to administrative and control plane endpoints exposed on the host loopback interface.

Amit Schendel
Amit Schendel
7 views•8 min read
•1 day ago•CVE-2026-63405
5.9

CVE-2026-63405: Insufficient Verification of Data Authenticity in AnyCable Pusher REST API

AnyCable is a real-time communication server. Prior to version 1.6.15, its Pusher-compatible REST API suffered from an authentication bypass vulnerability because it failed to verify that the request body matched the signature-validated body_md5 parameter. This allows attackers to perform replay attacks with modified body contents.

Amit Schendel
Amit Schendel
8 views•5 min read
•1 day ago•CVE-2026-64847
6.8

CVE-2026-64847: Indefinite Denial of Service via Undrained Stderr in AnyIO Process Pool Workers

A denial-of-service vulnerability exists in AnyIO prior to version 4.14.2. Standard error streams of process-pool workers are connected to an operating system pipe that is never drained by the parent process. This allows a worker to fill the pipe buffer and deadlock indefinitely.

Amit Schendel
Amit Schendel
7 views•6 min read
•1 day ago•CVE-2026-63349
7.0

CVE-2026-63349: Privilege Dropping Bypass and Denial of Service in AnyIO Subprocess Module

CVE-2026-63349 is a critical privilege-dropping bypass vulnerability in the AnyIO asynchronous framework (versions 4.14.0 and 4.14.1) on POSIX platforms. Due to a variable assignment typo, supplementary groups specified by the developer are not correctly propagated to the execution backend, resulting in subprocesses retaining the parent process's elevated supplementary group permissions.

Alon Barad
Alon Barad
12 views•5 min read
•1 day ago•CVE-2026-63406
5.9

CVE-2026-63406: Information Disclosure via Insecure Telemetry and Hardcoded Credentials in AnyCable-Go

CVE-2026-63406 is an information disclosure vulnerability in AnyCable-go prior to version 1.6.15. The built-in telemetry client is enabled by default with a hardcoded public authentication token ('secret'). This client digests highly sensitive configuration parameters and command-line arguments, including JWT secrets and RPC secrets, into a stable SHA-256 fingerprint. This fingerprint is sent over public networks, exposing those administrative secrets to offline dictionary and brute-force attacks if intercepted.

Alon Barad
Alon Barad
7 views•5 min read
•1 day ago•CVE-2026-84992
6.1

CVE-2026-84992: Cross-Site Scripting (XSS) via Fenced Code Block Parsing in md-editor-v3

CVE-2026-84992 is a Cross-Site Scripting (XSS) vulnerability affecting md-editor-v3 before version 6.5.4. It occurs because the fenced-code block language parser directly interpolates unescaped language metadata into unquoted HTML attributes inside the custom rendering callback. This bypasses the built-in XSSPlugin which runs during the parsing phase, before rendering.

Amit Schendel
Amit Schendel
9 views•6 min read