Circling Back: FreeRADIUS Fix Cuts Off Authenticaton Bypass

Open source software implementations offer great value and flexibility for organizations, allowing IT admins to leverage purpose-built technology tools rather than starting from scratch. So it’s no surprise that FreeRADIUS — an open source version of the nearly three-decades-old RADIUS protocol — sees substantial use in enterprise circles.

The problem? According to Threatpost, a flaw discovered in the protocol’s transport layer security (TLS) cache and session resumption features could put users at risk. Thankfully, there’s already a fix. So patch yourself first, and then read on about this RADIUS remote risk.

FreeRADIUS: A Functional and Feature-Rich Technology

FreeRADIUS has been working hard to consistently provide stable versions of Remote Authentication Dial-In User Service (RADIUS) technology. As a result, their offering is the most popular RADIUS server solution — according to the project, “it supplies the AAA needs of many Fortune 500 companies and Tier 1 ISPs.” It is also used for enterprise Wi-Fi connections along with IEEE 802.1X network security, especially in academic institutions.

While the tech is typically run on Linux, it also works with Windows, and recently reached stable Version 3.0.14 (sig), which includes the fix for the TLS issue. This is open source software working as intended: Regularly updated with incremental and large-scale changes, well-supported, feature-rich and scalable. Unfortunately, it’s also at risk.

Playing Off of Authentication Caches

The Register explained that vulnerability CVE-2017-9148 was originally found by Stefan Winter of RESTENA, Luxembourg’s high-speed academic network. He discovered a flaw in TLS session cache behavior: For all versions prior to 3.0.14, and including development versions, it was possible to resume an unauthenticated session as if it had been previously properly authenticated.

In practice, this meant threat actors could potentially start a FreeRADIUS connection without credentials, then suspend and resume the session. Since the server caches TLS session keys in case connections are dropped as a result of network changes or shifts between cell towers, it’s possible for users with session IDs to resume their connection using this cached data.

But the protocols used are designed to skip “inner authentication,” which requires users to re-enter their login information. Unless users completely disabled their TLS cache, it was impossible to prevent the resumption of unauthenticated sessions, which could give attackers full access to RADIUS servers.

Finding a Solution

Solving this problem meant deploying a patch that prevented session resumption until inner authentication was complete, rather than relying on an assumption of valid credentials. The FreeRADIUS team released the patch for this issue in February, but the vulnerability re-emerged, prompting the development of version 3.0.14.

Also worth noting is that versions 1.0x, 1.1x, 2.0x, 2.1x and 2.2x will not receive updates since they’re no longer supported. Enterprises running these versions are advised to either implement the current version or fully disable TLS session caching from the cache subsection of module settings.

FreeRADIUS developers have circled back and closed off a serious TLS bypass in their open source offering. Given the potential impact of unauthenticated sessions given full access if attackers simply drop networks and reconnect, patching this protocol is priority No. 1.

Contributor'photo

Douglas Bonderud

Freelance Writer

A freelance writer for three years, Doug Bonderud is a Western Canadian with expertise in the fields of technology and...