CVE-2020-36949CVE-2020-36949是TapInRadio 2.13.7版本中发现的一个高危拒绝服务漏洞。该漏洞存在于应用程序的代理设置功能中,攻击者可以通过在代理设置的用户名和地址输入字段中注入超长字符串(超过20,000字符)来触发缓冲区溢出。当程序尝试处理这些超长输入时,会导致应用程序崩溃或进入无响应状态。由于该漏洞无需任何认证即可利用,且攻击复杂度较低,攻击者可以远程发起攻击,无需用户交互即可使目标系统上的TapInRadio应用程序失效。受影响的用户在应用程序崩溃后可能需要重新安装程序才能恢复正常使用,这为攻击者提供了一种有效的拒绝服务手段。该漏洞的CVSS评分为7.5,属于高危级别,对系统可用性造成严重影响。
该漏洞的根本原因在于TapInRadio 2.13.7的代理设置模块缺乏对用户输入长度和内容的有效验证。当用户在代理设置界面的用户名(Username)和服务器地址(Address)字段中输入超长字符串时,程序没有对输入数据进行边界检查,直接将数据传递给底层的字符串处理函数。在处理超过20,000字符的超长字符串时,程序栈空间或堆内存会发生缓冲区溢出,覆盖关键的程序控制数据或函数返回地址。由于TapInRadio使用C/C++编写且未启用栈保护机制,攻击者可以通过精心构造的超长输入覆盖栈帧中的返回地址,虽然该漏洞主要被用于拒绝服务攻击(导致程序崩溃),但理论上也存在控制流劫持的可能性。攻击者只需在代理设置界面粘贴约20,000个字符的字符串即可触发漏洞,程序会立即变得无响应且无法恢复,必须通过任务管理器终止进程或重新启动系统。