affects Windows systems that have the enableCmdLineArguments feature enabled.
exploit this vulnerability by exploiting a command injection flaw resulting from a Tomcat CGI Servlet input validation error, thus allowing them to execute arbitrary commands on the affected system.
Versions 9.0.0.M1 to 9.0.17, 8.5.0 to 8.5.39, and 7.0.0 to 7.0.93 of Tomcat are affected
The CGI Servlet is a vital component of Apache Tomcat that enables web servers to communicate with external applications beyond the Tomcat JVM.
These external applications are typically CGI scripts written in languages like Perl, Python, or Bash.
The CGI Servlet receives requests from web browsers and forwards them to CGI scripts for processing.
The enableCmdLineArguments setting if set to true - the CGI Servlet parses the query string and passes it to the CGI script as arguments.
This feature can make CGI scripts more flexible and easier to write by allowing parameters to be passed to the script without using environment variables or standard input.
a CGI script can use command line arguments to switch between actions based on user input.
EX: Suppose you have a CGI script that allows users to search for books in a bookstore's catalogue. The script has two possible actions: "search by title" and "search by author."