CVE-2019-25569RealTerm Serial Terminal 2.0.0.70版本中存在一个基于栈的缓冲区溢出漏洞。该漏洞位于Echo Port字段中,允许本地攻击者通过破坏结构化异常处理(SEH)链来导致应用程序崩溃。攻击者可以构造一个包含268字节填充数据后跟SEH覆盖值的恶意输入字符串,并将其粘贴到Port字段中,从而触发拒绝服务条件。此漏洞利用不需要用户交互或身份验证,攻击复杂度低,对系统可用性产生严重影响。
该漏洞源于RealTerm Serial Terminal在处理用户输入到“Echo Port”字段的数据时,缺乏足够的边界检查,导致基于栈的缓冲区溢出。当输入超过缓冲区大小时,多余的数据会覆盖栈上的返回地址或结构化异常处理(SEH)记录。攻击者构造特定的攻击载荷,通常包含268字节的垃圾数据用于填充缓冲区直到到达SEH结构位置,随后覆盖Next SEH(nSEH)和SE Handler地址。由于程序在遇到异常时会尝试调用被覆盖的SEH处理程序,而该处理程序已被攻击者控制或指向无效地址,从而导致应用程序崩溃或潜在的代码执行。尽管当前描述主要指代拒绝服务,但在特定条件下,精确控制SEH链可能实现任意代码执行。