The escape_dangerous_chars function in CGI::Lite 2.0 and earlier does not correctly remove special characters including (1) \\\\ (backslash) (2) \?\ (3) \~\ (tilde) (4) \^\ (carat) (5) newline or (6) carriage return which could allow remote attackers to read or write arbitrary files or execute arbitrary commands in shell scripts that rely on CGI::Lite to filter such dangerous inputs.