FreeRadius是FreeRADIUS Server项目的一套实现了RADIUS协议的软件。该软件主要用于账户认证管理、记账管理和上网账户管理等,并包含有一个Radius服务器、一个BSD协议授权的客户端库、一个PAM库和一个Apache模块。 FreeRadius没有正确处理输入的tag字段数据,远程攻击者可以利用这个漏洞对服务程序进行拒绝服务攻击。 问题存在于FreeRadius处理访问请求包中的\"Tunnel-Password\"属性时,此属性包含\'\'tag\'\' (RFC 2868)和\'\'string\'\'类型,其为2-3长度的字节,可导致服务器调用长度为\'\'-1\'\'的\'\'memcpy\'\'函数。 之后RADIUS属性的256字节的包内容拷贝到当前堆结构,而其他的数据就会覆盖后续的堆内容,由于RADIUS只有4K长度,因此,覆盖结构头之后,攻击者还有3.5K数据进行攻击。 发送包的源地址IP必须列于服务器配置的安全列表中,不过RADIUS不需要包签名 ,任何网络上机器发送伪造的UDP包可导致RADIUS服务程序崩溃。
FreeRadius是FreeRADIUS Server项目的一套实现了RADIUS协议的软件。该软件主要用于账户认证管理、记账管理和上网账户管理等,并包含有一个Radius服务器、一个BSD协议授权的客户端库、一个PAM库和一个Apache模块。 FreeRadius没有正确处理输入的tag字段数据,远程攻击者可以利用这个漏洞对服务程序进行拒绝服务攻击。 问题存在于FreeRadius处理访问请求包中的\"Tunnel-Password\"属性时,此属性包含\'\'tag\'\' (RFC 2868)和\'\'string\'\'类型,其为2-3长度的字节,可导致服务器调用长度为\'\'-1\'\'的\'\'memcpy\'\'函数。 之后RADIUS属性的256字节的包内容拷贝到当前堆结构,而其他的数据就会覆盖后续的堆内容,由于RADIUS只有4K长度,因此,覆盖结构头之后,攻击者还有3.5K数据进行攻击。 发送包的源地址IP必须列于服务器配置的安全列表中,不过RADIUS不需要包签名 ,任何网络上机器发送伪造的UDP包可导致RADIUS服务程序崩溃。