近期,来自卢森堡RESTENA的安全研究专家Stefan Winter在当前全球最流行的radius服务器中发现了一个TLS认证绕过漏洞。
FreeRADIUS是目前世界上最受欢迎的RADIUS服务器,实际上绝大多数的radius服务器都是基于FreeRADIUS开发而来的,其中包括很多开源应用以及商业应用在内。除此之外,它不仅一直在给财富500强公司和一级ISP供应商提供三A级技术支持,而且很多企业级Wi-Fi和IEEE 802.1X网络(尤其是教育社区)都在使用FreeRADIUS。
这个漏洞(CVE-2017-9148)存在于TTLS和PEAP实现之中,当系统在处理重连的TLS链接时便会触发这个漏洞,此时攻击者将能够绕过系统的内部验证机制。
研究人员在其发布的漏洞报告中写道:
“当FreeRADIUS在处理一条重连的TLS连接时,FreeRADIUS中的TTLS和PEAP实现将会绕过系统的内部验证机制。现在的关键问题就在于,除非TLS会话的初始链接已经成功通过了内部验证,否则服务器永远不应该允许TLS会话进行重连。但不幸的是,受此漏洞影响的FreeRADIUS版本根本无法有效地阻止未经认证的TLS会话进行重连,除非系统完全禁用了TLS会话缓存。而这也就意味着,攻击者将能够在不发送任何有效凭证的情况下绕过系统内部的验证机制。”
通信连接发生中断其实是一件很正常的事情,比如说,当TLS通信链路上的一名用户从一个信号站转移到另一个信号站时就会发生通信中断和重连的情况。而由于这个漏洞的影响,系统并不会要求用户重新进行登录验证。
受漏洞CVE-2017-9148影响的FreeRADIUS版本如下:
- 2.2.x : 全版本;
- 3.0.x (稳定版): 3.0.14版本之前的所有版本;
- 3.1.x和4.0.x (开发版): 2017-02-04版本之前的所有版本;
正在使用FreeRADIUS的系统管理员们需要将版本更新至3.0.14方可解决这个问题,目前临时的缓解方案为禁用TLS会话缓存。
漏洞报告中给出的漏洞缓解措施如下:
- (a)禁用TLS会话缓存,即在EAP模块设置的缓存设置区域将enabled参数设为no(enabled = no)
- (b)将版本更新至3.0.14