But this was fixed long ago in version 2.94. We're at version 2.98 now. The most up-to-date copy is always in CPAN.
Please find attached the patch against CGI.pm version 2.98.
-- Erwann Corvellec
--- CGI.pm.ori 2003-06-18 21:57:21.000000000 +0200 +++ CGI.pm 2003-07-23 09:53:18.000000000 +0200 @@ -1641,7 +1641,7 @@ unless (defined $action) { $action = $self->url(-absolute=>1,-path=>1); if (length($ENV{QUERY_STRING})>0) { - $action .= "?$ENV{QUERY_STRING}"; + $action .= '?' . $self->escapeHTML($ENV{QUERY_STRING},1); } } $action =~ s/\"/%22/g; # fix cross-site scripting bug reported by obscure