CVE-2021-47827CVE-2021-47827是WebSSH for iOS应用中存在的一个高危拒绝服务漏洞,该漏洞影响14.16.10及之前版本。漏洞位于应用的mashREPL工具中,攻击者可以通过在输入字段中粘贴格式错误的输入来触发此漏洞。具体而言,当用户在mashREPL输入框中粘贴包含300个连续字符'A'的缓冲区时,会导致应用程序崩溃。这种崩溃是由于应用程序无法正确处理过长的单行输入数据,导致内存处理异常或缓冲区处理逻辑出现问题。该漏洞的CVSS评分为7.5,属于高危级别,攻击向量为网络层面,无需任何认证或用户交互即可触发。攻击成功后,应用程序会立即崩溃,影响服务的可用性。由于WebSSH是iOS平台上常用的SSH客户端工具,该漏洞可能对大量使用该应用进行远程服务器管理的用户造成影响。攻击者无需特殊权限即可利用此漏洞,只需要能够诱导用户复制并粘贴恶意构造的文本内容即可。
该拒绝服务漏洞的根本原因在于WebSSH for iOS的mashREPL组件对输入数据的边界检查不完善。当用户输入或粘贴包含大量重复字符的字符串时,应用程序在处理该输入时未能正确分配或管理内存资源。具体技术细节如下:mashREPL工具在接收到用户输入后,会将输入内容存储在缓冲区中进行解析和处理。当输入长度超过应用程序预设的缓冲区大小时(例如300个字符的重复'A'),内存处理逻辑会出现异常,可能导致缓冲区溢出或内存访问冲突。应用程序在尝试处理这个超长字符串时,会触发未处理的异常或导致进程崩溃。由于该漏洞存在于客户端应用程序中,崩溃只会影响本地用户的应用进程,不会直接危及相关服务器系统。但对于依赖WebSSH进行日常运维工作的用户而言,应用崩溃可能导致工作中断,特别是在需要保持SSH会话的场景下。修复此漏洞需要在mashREPL工具中添加适当的输入长度验证和边界检查机制。