InformationBuffer Overflow attacks attempt to exploit an application by providing more data than the application buffer can contain. If the application allows copying data to the buffer to overflow the boundaries of the buffer, then the application is vulnerable to a buffer overflow. The results of Buffer overflow vulnerabilities vary, and may result in the application crashing, or may allow the attacker to execute instructions provided in the data. The Apache 'LimitRequest*' directives allow the Apache web server to limit the sizes of requests and request fields and can be used to help protect programs and applications processing those requests.
Specifically, the 'LimitRequestLine' directive limits the allowed size of a client's HTTP request-line, which consists of the HTTP method, URI, and protocol version.
The limiting of the size of the request line is helpful so that the web server can prevent an unexpectedly long or large request from being passed to a potentially vulnerable CGI program, module or application that would have attempted to process the request. Of course, the underlying dependency is that we need to set the limits high enough to not interfere with any one application on the server, while setting them low enough to be of value in protecting the applications. Since the configuration directive is available only at the server configuration level, it is not possible to tune the value for different portions of the same web server. Please read the Apache documentation carefully, as these requests may interfere with the expected functionality of some web applications.
SolutionPerform the following to implement the recommended state:
Add or modify the 'LimitRequestLine' directive in the Apache configuration to have a value of '512' or less.