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

  1. Retry the request once to rule out a one-off mangled datagram
  2. Cross-check with the TCP path: send the same message over TCP and compare
  3. 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

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


AI-assisted analysis of projectdiscovery/nuclei@265b3a3dec (2026-08-15). Data as JSON: /api/errors/2822d5484cc82081. Report an issue: GitHub.