Title: OpenBSD Radius Authentication Bypass Vulnerability
Severity: CRITICAL
Description:
OpenBSD is reported prone to an authentication bypass vulnerability when using Radius authentication. This issue can be leveraged by spoofing traffic on a vulnerable network and carrying out a man-in-the-middle attack to gain unauthorized access to an OpenBSD computer.
This vulnerability arises if an OpenBSD computer is configured to use Radius authentication, which can be configured in the ' /etc/login.conf' file. The OpenBSD machine asks a client for authentication credentials and sends these credentials to the Radius server. The Radius server then verifies the credentials and responds with a 'ACCEPT' or 'REJECT' packet to the computer running OpenBSD.
This protocol is described in RFC 2865. According to RFC 2865, a Network Access Server (NAS) sends a 'Access-Request' UDP packet to Radius server to verify authentication credentials of a client. This packet contains a 'Request Authenticator', which is a 16 octet random number generated by the NAS. The packet also contains the user password, which is also a 16 octet value padded with NULL bytes and XORed with the MD5 sum of a shared secret or the 'Request Authenticator'. Other values such as 'code', 'id', 'length', 'username', 'NAS-IP-address' and 'NAS-port' are included in this packet as well. If these credentials are correct, the Radius server responds to the NAS with an 'Access-Accept' UDP packet.
The 'Access-Accept' UDP packet contains similar attributes as the 'Access-Request' packet. It contains a 16 octet 'Response Authenticator' value, which is the MD5 sum of the 'code', 'id', 'length', the 'Request Authenticator' value from the 'Access Request', other attributes of the response packet and the shared secret. Therefore, the 'Response Authenticator' value in the reply uses the 'Request Authenticator' value from the request packet.
It is reported that if an attacker has access to a vulnerable network using the authentication method described above, they can gain access to a vulnerable OpenBSD computer.
To carry out this attack, the attacker must capture an 'ACCEPT' packet from the network using a packet sniffer and modify it to use it for spoofing. The attacker then carries out a man-in-the-middle attack by attempting to authenticate to the OpenBSD computer and intercepting network traffic using a technique such as ARP spoofing. The attacker redirects traffic going to the Radius server from the OpenBSD computer and responds to the OpenBSD computer with a modified 'ACCEPT' packet captured earlier. This can allow the attacker to gain access to the OpenBSD computer without having the knowledge of the shared secret or the password.
The vulnerability is confirmed in OpenBSD 3.2 and OpenBSD 3.5. Other versions may be vulnerable as well.
Affected Products:
- F5 3-DNS 4.2.0
- F5 3-DNS 4.3.0
- F5 3-DNS 4.4.0
- F5 3-DNS 4.5.0
- F5 3-DNS 4.6.0
- F5 3-DNS 4.6.2
- F5 BigIP 4.2.0
- F5 BigIP 4.3.0
- F5 BigIP 4.4.0
- F5 BigIP 4.5.0
- F5 BigIP 4.5.10
- F5 BigIP 4.5.6
- F5 BigIP 4.5.9
- F5 BigIP 4.6.0
- F5 BigIP 4.6.2
- OpenBSD OpenBSD 3.2
- OpenBSD OpenBSD 3.4
- OpenBSD OpenBSD 3.5.0
References:
- Eilko Bos: OpenBSD radius authentication vulnerability
- F5 Software: BigIP Product Information
- OpenBSD: OpenBSD Homepage
Juniper Networks provides this content via a wide variety of sources and production methods. If notified of errors or omissions in the content of this page, Juniper Networks, at its discretion, will modify or remove the page or leave the content as is, depending on various factors including but not limited to the reputation and authority of the party providing the notification. Please use the contact information displayed elsewhere on this page to report any errors or omissions regarding the content on this page.