projectdiscovery/nuclei · error
no response data from %s
Error message
no response data from %s
What it means
sendUDP read a datagram successfully but it contained zero bytes: the KDC (or something impersonating it) replied with an empty payload. The library treats an empty UDP answer as a protocol violation rather than returning empty data to the caller.
Source
Thrown at pkg/js/libs/kerberos/sendtokdc.go:165
// sendUDP sends bytes to connection over UDP.
func sendUDP(conn *net.UDPConn, b []byte) ([]byte, error) {
var r []byte
defer func() {
_ = conn.Close()
}()
_, err := conn.Write(b)
if err != nil {
return r, fmt.Errorf("error sending to (%s): %v", conn.RemoteAddr().String(), err)
}
udpbuf := make([]byte, 4096)
n, _, err := conn.ReadFrom(udpbuf)
r = udpbuf[:n]
if err != nil {
return r, fmt.Errorf("sending over UDP failed to %s: %v", conn.RemoteAddr().String(), err)
}
if len(r) < 1 {
return r, fmt.Errorf("no response data from %s", conn.RemoteAddr().String())
}
return r, nil
}
// sendTCP sends bytes to connection over TCP.
func sendTCP(conn *net.TCPConn, b []byte) ([]byte, error) {
defer func() {
_ = conn.Close()
}()
var r []byte
// RFC 4120 7.2.2 specifies the first 4 bytes indicate the length of the message in big endian order.
hb := make([]byte, 4)
binary.BigEndian.PutUint32(hb, uint32(len(b)))
b = append(hb, b...)
_, err := conn.Write(b)
if err != nil {
return r, fmt.Errorf("error sending to KDC (%s): %v", conn.RemoteAddr().String(), err)View on GitHub (pinned to 265b3a3dec)
Solutions
- Retry the request once to rule out a one-off mangled datagram
- Cross-check with the TCP path: send the same message over TCP and compare
- Treat hosts that consistently answer empty as misbehaving and skip further Kerberos probes
Defensive patterns
Strategy: try-catch
Try / catch
try {
const resp = kerberos.SendToKDC(client, msg);
} catch (e) {
// empty UDP datagram from the KDC: retry once, then cross-check over TCP
} Prevention
- Treat consistently empty UDP replies as a misbehaving host
- Cross-validate with the TCP transport before trusting a host's Kerberos service
When it happens
Trigger: A middlebox or honeypot answering with an empty UDP datagram; a KDC closing out a malformed request with a zero-length reply; extremely rare kernel-level truncation.
Common situations: Scanning lab targets and honeypots that imitate service sockets; NAT devices mangling small UDP replies.
Related errors
- error sending to (%s): %v
- sending over UDP failed to %s: %v
- error reading response: %v
- no response data from KDC %s
- domain controller denied by network policy
AI-assisted analysis of projectdiscovery/nuclei@265b3a3dec (2026-08-15).
Data as JSON: /api/errors/2822d5484cc82081.
Report an issue: GitHub.