FreeBSD getnameinfo() Denial of Service Vulnerability

The getnameinfo() function is used by network programs to retrieve the resolved names for the address and port values in socket address structures (it returns hostname and service name strings). The implementation of this fuction that ships with BSD systems contains an off-by-one vulnerability that can lead to a remotely caused denial of service. If a malicious user controlling the victims DNS server has the service return an "extra long" hostname in response to a query made through the use of getnameinfo(), the program calling the function will crash. This attack can be used to disable a "one time" service not spawned by inetd that uses getnameinfo() before forking any children to deal with clients.


Privacy Statement
Copyright 2010, SecurityFocus