CVE-2025-59088 Overview
CVE-2025-59088 is a Server-Side Request Forgery (SSRF) vulnerability in kdcproxy, a proxy application for Kerberos Key Distribution Center (KDC) communications. When kdcproxy receives a request for a realm without configured server addresses, it defaults to querying DNS SRV records matching the requested realm name. This behavior enables attackers to craft malicious requests that force the proxy to query attacker-controlled DNS zones, potentially allowing internal network reconnaissance, port scanning, and data exfiltration.
Critical Impact
This SSRF vulnerability allows unauthenticated attackers to probe internal network topology, bypass firewall rules, perform port scanning against internal hosts, and potentially exfiltrate sensitive data through DNS-based covert channels.
Affected Products
- kdcproxy (all versions with default use_dns configuration)
- Red Hat Enterprise Linux distributions shipping affected kdcproxy versions
- Systems using kdcproxy without explicit use_dns=false configuration
Discovery Timeline
- 2025-11-12 - CVE-2025-59088 published to NVD
- 2026-04-15 - Last updated in NVD database
Technical Details for CVE-2025-59088
Vulnerability Analysis
The vulnerability stems from kdcproxy's default DNS lookup behavior when handling Kerberos authentication requests. When a client requests a realm that is not explicitly configured in kdcproxy's configuration file, the proxy automatically performs DNS SRV record lookups to discover KDC servers for that realm. This design assumes that DNS responses are trustworthy, which creates an exploitable condition when attackers can control the DNS zone for a crafted realm name.
The SSRF condition allows attackers to manipulate kdcproxy into making outbound connections to arbitrary hosts and ports specified in malicious SRV records. Since kdcproxy executes within the network perimeter, these connections can target internal IP addresses (including 127.0.0.1 and RFC 1918 ranges) that would otherwise be inaccessible from external networks. The vulnerability is classified under CWE-918 (Server-Side Request Forgery).
Root Cause
The root cause is the implicit trust placed in DNS SRV record responses combined with the default-enabled DNS lookup functionality. When the use_dns setting is not explicitly set to false, kdcproxy will automatically query DNS for any realm name, treating the realm string as a DNS zone name without validation. This allows attackers to specify arbitrary realm names corresponding to DNS zones they control, where they have configured SRV records pointing to internal or sensitive network resources.
Attack Vector
An attacker can exploit this vulnerability by sending a Kerberos request through kdcproxy with a realm name that matches a DNS zone under their control. The attack flow proceeds as follows:
- The attacker registers a DNS zone (e.g., attacker.example.com) and creates SRV records for Kerberos services pointing to internal IP addresses and arbitrary ports
- The attacker sends a Kerberos request to kdcproxy specifying the realm ATTACKER.EXAMPLE.COM
- kdcproxy queries DNS for _kerberos._tcp.attacker.example.com and _kerberos._udp.attacker.example.com
- DNS returns SRV records pointing to internal targets (e.g., 127.0.0.1:6379 for Redis, 192.168.1.10:3306 for MySQL)
- kdcproxy attempts connections to these internal services
- Response timing and error messages reveal whether ports are open, enabling network mapping
This technique can be extended for data exfiltration by encoding sensitive information in DNS queries to attacker-controlled authoritative nameservers.
Detection Methods for CVE-2025-59088
Indicators of Compromise
- Unusual DNS SRV queries originating from kdcproxy servers for unfamiliar or suspicious realm names
- kdcproxy connection attempts to internal IP addresses (loopback, private ranges) or unexpected ports
- High volume of DNS queries for Kerberos SRV records to external DNS zones
- Error logs indicating connection failures to non-KDC services on unusual ports
Detection Strategies
- Monitor DNS query logs for _kerberos._tcp.* and _kerberos._udp.* queries to domains outside your organization
- Implement network segmentation monitoring to detect kdcproxy connections to unauthorized internal hosts
- Deploy SIEM rules to correlate unusual realm names in Kerberos requests with subsequent DNS lookups
- Use SentinelOne Singularity platform to detect anomalous network behavior from kdcproxy processes
Monitoring Recommendations
- Enable verbose logging on kdcproxy to capture all realm requests and DNS lookups performed
- Configure DNS monitoring to alert on SRV queries from kdcproxy hosts to external zones
- Implement egress filtering alerts for kdcproxy attempting connections to internal service ports (databases, caches, management interfaces)
- Review kdcproxy access logs for requests with realm names not matching your organization's Kerberos realms
How to Mitigate CVE-2025-59088
Immediate Actions Required
- Set use_dns = false in kdcproxy configuration to disable automatic DNS discovery
- Explicitly configure all legitimate Kerberos realms and their KDC server addresses in kdcproxy configuration
- Implement network-level egress filtering to restrict kdcproxy outbound connections to known KDC servers only
- Apply the latest security patches from Red Hat or upstream kdcproxy project
Patch Information
Red Hat has released multiple security advisories addressing this vulnerability. Organizations should apply the appropriate patch for their distribution:
- Red Hat Security Advisory RHSA-2025:21138
- Red Hat Security Advisory RHSA-2025:21139
- Red Hat Security Advisory RHSA-2025:21140
- Red Hat Security Advisory RHSA-2025:21141
- Red Hat Security Advisory RHSA-2025:21142
Additional patch information and the upstream fix can be found in GitHub Pull Request #68. The Red Hat CVE Report for CVE-2025-59088 provides comprehensive guidance for affected Red Hat products.
Workarounds
- Disable DNS-based KDC discovery by setting use_dns = false in the kdcproxy configuration file
- Manually configure all required Kerberos realms with their associated KDC server addresses
- Implement firewall rules restricting kdcproxy outbound connections to only authorized KDC servers on Kerberos ports (88/TCP, 88/UDP)
- Deploy network segmentation to isolate kdcproxy from sensitive internal services
# kdcproxy configuration example (/etc/kdcproxy/kdcproxy.conf)
[global]
use_dns = false
[EXAMPLE.COM]
kerberos = kerberos://kdc1.example.com:88 kerberos://kdc2.example.com:88
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


