CVE:CVE-2003-0972
CNNVD:CNNVD-200312-037
Screen是一款免费开放源代码的终端管理软件，由Free Software Foundation分发和维护，可使用在多种Unix和Linux操作系统下。
Screen不正确处理转义序列字符，本地或者远程攻击者可以利用这个漏洞进行缓冲区溢出攻击，精心构建提交数据可能以进程权限在系统上执行任意指令。
问题存在于ansi.c代码中：
ansi.c:
        case '0': case '1': case '2': case '3': case '4':
        case '5': case '6': case '7': case '8': case '9':
          if (curr->w_NumArgs < MAXARGS)
        {
          if (curr->w_args[curr->w_NumArgs] < 100000000)
            curr->w_args[curr->w_NumArgs] =
              10 * curr->w_args[curr->w_NumArgs] + (c - '0');
        }
          break;
        case ';':
        case ':':
          curr->w_NumArgs++;
          break;
w_NumArgs是一个符号整数，在转义字符中发送2GB';'字符，会引起内部变量变为负值，这样就使能成功绕过< MAXARGS的保护检查，而后续的采用此负值的操作可导致破坏内存信息，可能以进程权限在系统上执行任意指令。
由于转义序列可源自使用SSH，telnet，或其他网络工具的远程网络会话，因此此漏洞也可能被远程利用。
solution:Upgrade gnu screen to a higher version than 3.9.4,3.9.8,3.9.9,3.9.10,3.9.11,3.9.13,3.9.15,4.0.1,and avoid the version 3.9.4,3.9.8,3.9.9,3.9.10,3.9.11,3.9.13,3.9.15,4.0.1