RustSec logo

History ⋅ Edit ⋅ JSON (OSV)

RUSTSEC-2026-0517

Spoofed malformed UDP datagrams abort DNS lookups

Reported
Issued
Package
hickory-net (crates.io)
Type
Vulnerability
Categories
Keywords
#dns #udp #spoofing
Aliases
References
CVSS Score
5.9 MEDIUM
CVSS Details
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality Impact
None
Integrity Impact
None
Availability Impact
High
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Patched
  • >=0.26.2
Unaffected
  • <0.26.0

Description

While waiting for a reply on a UDP connection, the client parsed every datagram that arrived from the name server's address and port before checking its message ID. If parsing failed, the attempt ended with an error instead of dropping the datagram and waiting for the real reply. The receive loop also gave up after three datagrams.

An off-path attacker who can guess the client's source port, but not the transaction ID, can send one malformed datagram with a spoofed source address and make the pending lookup fail.

The fix reads the message ID from the first two bytes before parsing, ignores short datagrams and datagrams with the wrong ID, keeps listening until the outer timeout, and only then parses the response. It is in 0.26.2.

Advisory available under CC0-1.0 license.