LPC (Local Procedure Call) is a message-passing service that allows threads and processes to communicate with each other on a local machine as opposed to RPC (Remote Procedure Call) that takes place between different hosts. The implementation of LPC in Windows NT 4.0 does not properly handle LPC requests that are out of order or utilize invalid parameters.
If a server was to receive a LPC request from a client, the normal procedure for the server would be a call to NtAcceptConnectPort and NtCompleteConnectPort to complete the connection. If the server were to call upon NtReplyPort rather than NtAcceptConnectPort, the client would crash due to a kernel exception.
In addition, if a client was to connect to either \DbgSsApiPort or \DbgUiApiPort and send random data, the client would crash.
In both scenarios, reboot of the system would be required in order to regain normal functionality.
This vulnerability can only be launched against a machine a user can interactively log onto, therefore remote exploitation is not possible.
Other vulnerabilities exists in NT's implementation of LPC and are detailed in the Microsoft Security Bulletin (MS00-070) and Bindview's Security Advisory located under the 'Credit' tab.
1) Executing the following commands will cause a Blue Screen of Death and rebooting the system is required in order to regain normal functionality (NtReplyPort vulnerability).
start porttool -s2 \BaseNamedObjects\Foo
porttool -c \BaseNamedObjects\Foo
2) Executing the following commands will cause a Blue Screen of Death and rebooting the system is required in order to regain normal functionality (DbgSsApiPort or \DbgUiApiPort vulnerability).
porttool -c \DbgSsApiPort
porttool -c \DbgUiApiPort