Range checking fault condition in Microsoft Windows 2000 Telnet server Issue Date: June 8, 2001 Contact: Michal Zalewski Topic: Range checking fault condition is present in telnet server shipped with Microsoft Windows 2000. Affected Systems: Tested on Windows 2000 Advanced Server SP1. Overview: There is a buffer size checking related fault condition in Microsoft Windows 2000 telnet server. This vulnerability is present only if telnet service is running and plain-text logins are allowed (this does not apply to NTLM-based authentication). Details: Microsoft Telnet Server does range checking when reading a username, dropping the connection if an excessively long line was sent to it. This mechanism fails if there is approximately 4300 or more characters in the input buffer already, and ASCII code 127 (0x7b, backspace) arrives. This leads to service crash (DoS condition). When this condition occurs, 0x41414141 can be found in stack dumps. Microsoft advised us this condition is not exploitable. Vulnerability check: The following Linux bash script would test telnet server for the vulnerability: - test.sh - #!/bin/bash ( sleep 1 perl -e '{printf "%s\x7f%s","A"x4500,"A"x100}' sleep 3 ) | telnet victimbox - eof - Vendor response: This vulnerability is addressed by the MS01-031 security bulletin and Microsoft has issued a patch to correct the issue. ________________________________________________________________________________________ References: Microsoft's security bulletin: http://www.microsoft.com/technet/security/bulletin/ms01-031.asp Microsoft's Patch: Windows 2000: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=30508